gpt4 book ai didi

c++ - 在 QML 文件中使用 C++ 类变量

转载 作者:搜寻专家 更新时间:2023-10-31 00:33:30 25 4
gpt4 key购买 nike

如何在 Qt 中的 QML 文件中使用 C++ 类变量。我想在 c++ 文件中设置一个基于 Q_OS_Android 的变量,并评估 QML 文件中的条件。这怎么可能?

最佳答案

您必须在头文件中将变量声明为属性,并在 main.xml 中使用 qml 注册该类。下面是类 Foo 和变量 QString var 的示例:

class Foo : ...
{
Q_OBJECT
Q_PROPERTY(QString var READ getVar WRITE setVar NOTIFY varChanged)

public:
Foo();
~Foo();

QString getVar() const {return m_var;}
void setVar(const QString &var);

signals:
void varChanged();

public slots:
//slots can be called from QML
private:
QString m_var;
};

大体上你会有这样的东西:

int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);

qmlRegisterType<Foo>("MyApp", 1, 0, "Foo");

QQuickView view;
view.setSource(QUrl("qrc:/main.qml"));
view.show();
return app.exec();
}

在您的 Qml 文件中,您可以使用以下方法简单地导入您的类:

import MyApp 1.0

然后像使用任何普通 QML 类型一样使用您的类:

Foo{
id: myClass
var: "my c++ var"
...
}

关于c++ - 在 QML 文件中使用 C++ 类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com