我想知道qml函数是否在主线程中运行?
c ++信号与qml插槽之间的连接是直接还是排队?
答案 0 :(得分:0)
qml 函数在主循环中运行。看看这里: https://marketplace.qt.io/products/main-loop-wdt-for-qt-qml
关于 C++ 信号和 QML 插槽,我不确定。我假设它是 Qt::AutoConnection,但我使用的是代理信号:
signals:
void dateChanged();
void _dateChanged();
...
connect(this,&Utils::_dateChanged,this,&Utils::dateChanged, Qt::QueuedConnection );
..
QtConcurrent::run([=]() {
...
emit _dateChanged();
});
两个选项都有效:
Utils{
id:utils
onDateChanged: { //DIRECT CONNECTION
console.log("FROM MAINLOOP CHANGED")
}
on_DateChanged: { //QUEUED CONNECTION ??
console.log("FROM THREAD CHANGED")
}
}