-1

私は現在、UIにQtJambiを使用してJavaプロジェクトに取り組んでいます。UIスレッドとは別のスレッドで計算を行っていますが、進行状況を示すためにUIを更新したいと思います。

UIの更新はUIスレッドでのみ実行でき、計算スレッドはUIスレッドではないため、そこからUIの更新を実行できないことは明らかです(その結果、QObject used from outside its own threadエラーが発生します)。

updateUI()では、 UIスレッドでメソッドを呼び出すにはどうすればよいですか?

4

2 に答える 2

6

自分で解決策を見つけました。UIスレッドで操作を実行QApplicationするメソッドを提供します。invokeLater

QApplication.invokeLater(new Runnable() {
    @Override
    public void run() {
        updateUI();
    }
});
于 2011-06-29T08:57:41.933 に答える
0

私は以前に同様の答えを出しましたが、それを見つけることができませんでした。だから私は前に言ったことを繰り返します。

メインスレッドとワーカースレッドの間で通信を行うには、qtのシグナル/スロットメカニズムを使用する必要があります。

マンデルブロのを確認してください。

これがお役に立てば幸いです。

于 2011-06-29T08:42:22.680 に答える