[英]Expose variable from c++ to qml
class Program
{
public:
Program() = delete;
Program(const QString &n, const QString &ip);
Program(const Program &other) = delete;
Program(Program &&other) = default;
~Program() = default;
Program &operator=(const Program &other) = delete;
Program &operator=(const Program &&other) = delete;
constexpr static size_t maxProgram = 99;
private:
QString name;
QString imagePath;
};
嗨,我想將此類中的變量maxProgram
公開給QML,我認為下面的代碼將其工作,但是我感謝其他干凈的解決方案。
enum def {
foo = maxProgram
};
Q_ENUM(def)
使用Q_PROPERTY和CONSTANT屬性:
Q_PROPERTY(int maxProgram READ getMaxProgram CONSTANT)
...
private:
int getMaxProgram() const {
return maxProgram;
}
size_t不起作用,但是從5.10開始,您可以使用qsizetype
Qt有一個很好的文檔,首先搜索它們,而不是發布問題。 總體描述頁面和具體答案 。
C ++
class ApplicationData : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE QDateTime getCurrentDateTime() const {
return QDateTime::currentDateTime();
}
};
int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);
QQuickView view;
ApplicationData data;
view.rootContext()->setContextProperty("applicationData", &data);
view.setSource(QUrl::fromLocalFile("MyItem.qml"));
view.show();
return app.exec();
}
QML
// MyItem.qml
import QtQuick 2.0
Text { text: applicationData.getCurrentDateTime() }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.