Qt 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

我想知道qml函数是否在主线程中运行


< > 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”线程中,就像大多数(所有?)具有用户界面的应用程序一样。学习优化技巧和一些技术细节。