Qt QML函数在哪个线程中运行?
我想知道qml函数是否在主线程中运行Qt QML函数在哪个线程中运行?,qt,qml,Qt,Qml,我想知道qml函数是否在主线程中运行 < > C++信号与QML时隙直接或排队的关系:qML函数在主循环中运行。请看这里: 关于C++信号和QML插槽,我不确定。我假设这是一个Qt::自动连接,但我使用的是代理信号: signals: void dateChanged(); void _dateChanged(); ... connect(this,&Utils::_dateChanged,this,&Utils::dateChanged, Qt::QueuedConnec
< > C++信号与QML时隙直接或排队的关系:qML函数在主循环中运行。请看这里: 关于C++信号和QML插槽,我不确定。我假设这是一个Qt::自动连接,但我使用的是代理信号:
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")
}
}
qml函数在mainloop中运行。请看这里: 关于C++信号和QML插槽,我不确定。我假设这是一个Qt::自动连接,但我使用的是代理信号:
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")
}
}
我不认为有一个简单的答案。例如,有不同类型的绑定。但是,是的,它主要运行在“main/GUI”线程中,就像大多数(所有?)具有用户界面的应用程序一样。研究优化技巧和一些技术细节。我不认为有一个简单的答案。例如,有不同类型的绑定。但是,是的,它主要运行在“main/GUI”线程中,就像大多数(所有?)具有用户界面的应用程序一样。学习优化技巧和一些技术细节。