【发布时间】:2014-04-02 15:00:05
【问题描述】:
当我在其他 QThread 中使用 Q_PROPERTY 时出现错误:非法尝试连接到...,它与 QML 引擎位于不同的线程中。
//myclass.cpp
Q_PROPERTY(QString FileReady READ GetFileReady NOTIFY FileReadyChanged)
这是在其他 QThread 中。 在主线程中,我有 QtQuick2ApplicationViewer 并像这样连接 Q_PROPERTY:
//main.cpp
MyClass cObject1();
QThread cThread1; //create new thread
cObject1.DoSetup(cThread1); //connect
cObject1.moveToThread(&cThread1); //move work to other thread
viewer.rootContext()->setContextProperty("otherthread",&cObject); // propably bad line
如何将其他线程中的 myclass 中的属性发送到主线程中的 QML? 如果可以,请举一个小例子。
【问题讨论】: