【发布时间】:2018-11-13 12:06:45
【问题描述】:
我的 QML UI 与我的 C++ 代码一起使用。我需要展示其进度的循环是用 C++ 开发的,如下所示:
for(unsigned int j = 0; j < Count; ++j) {
// Do stuff
}
在我的 QML 代码中,我需要这样的进度条:
ProgressBar {
value: j // Should come from C++ loop
// It is "j" on C++ loop
from: 0 // C++ loop starts out with 0
to: Count // C++ loop ends with "Count"
}
我不知道我的 C++ 循环和我的 QML 进度条需要如何相互链接。我找不到任何相关示例。谁能给我一个提示。
我的 C++ 和 QML 之间的通信是通过像这样使用Q_PROPERTY 完成的,但我不知道如何使用它:
Q_PROPERTY(float j READ j WRITE setJ NOTIFY jChanged)
【问题讨论】:
-
您必须通过在
QQmlEngine的rootContext上调用setContextProperty将 C++ 对象放入 QML 上下文中。参见doc.qt.io/qt-5/qtqml-cppintegration-contextproperties.html(示例适用于QQuickView,但它也适用于QQmlEngine)