我目前正在使用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