Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java QT Jambi:从其他线程更新UI_Java_Multithreading_Qt_Qt Jambi - Fatal编程技术网

Java QT Jambi:从其他线程更新UI

Java QT Jambi:从其他线程更新UI,java,multithreading,qt,qt-jambi,Java,Multithreading,Qt,Qt Jambi,我目前正在使用Qt-Jambi开发一个Java项目。我正在一个不同于UI线程的线程中进行一些计算,我想更新UI以指示进度 很明显,UI更新只能在UI线程上完成,而且由于计算线程不是UI线程,因此我无法从那里对UI执行更新(尝试这样做会导致从自身线程外部使用QObject错误) 那么,如何在UI线程上调用我的updateUI()方法呢 我以前也给出过类似的答案,但我找不到。因此,我将重复我以前说过的话 您需要使用qt的信号/slot机制来实现主线程与工作线程之间的通信 结帐 我希望这能有所帮助。我

我目前正在使用Qt-Jambi开发一个Java项目。我正在一个不同于UI线程的线程中进行一些计算,我想更新UI以指示进度

很明显,UI更新只能在UI线程上完成,而且由于计算线程不是UI线程,因此我无法从那里对UI执行更新(尝试这样做会导致从自身线程外部使用
QObject
错误)


那么,如何在UI线程上调用我的
updateUI()
方法呢

我以前也给出过类似的答案,但我找不到。因此,我将重复我以前说过的话

您需要使用qt的信号/slot机制来实现主线程与工作线程之间的通信

结帐


我希望这能有所帮助。

我自己刚刚找到了一个解决方案
QApplication
提供了
invokeLater
方法来在UI线程上执行操作:

QApplication.invokeLater(new Runnable() {
    @Override
    public void run() {
        updateUI();
    }
});

UI线程是关于设置外观和感觉,更新自定义组件。。。