我目前正在使用Qt Jambi为UI开发一个Java项目。我正在做一些与UI线程不同的线程计算,我想更新UI来指示进度。QT Jambi:从其他线程更新UI
很明显,UI更新只能在UI线程上完成,并且由于计算线程不是UI线程,所以我无法从那里执行UI更新(尝试导致出现QObject used from outside its own thread
错误)。
那么,如何在UI线程上调用我的updateUI()
方法?
我目前正在使用Qt Jambi为UI开发一个Java项目。我正在做一些与UI线程不同的线程计算,我想更新UI来指示进度。QT Jambi:从其他线程更新UI
很明显,UI更新只能在UI线程上完成,并且由于计算线程不是UI线程,所以我无法从那里执行UI更新(尝试导致出现QObject used from outside its own thread
错误)。
那么,如何在UI线程上调用我的updateUI()
方法?
我刚刚找到了解决方案。 QApplication
提供invokeLater
方法在UI线程上执行操作:
QApplication.invokeLater(new Runnable() {
@Override
public void run() {
updateUI();
}
});
UI线程是一些有关设置外观和感觉,更新自定义组件(S)... – mKorbel