0

QT アプリケーションがあります。

メインウィンドウを表示するスレッド(例:thread1)があります(これはメインスレッドとは異なります)。

また、自分のスレッド (例: thread2 ) が、GUI を更新しているスレッド 1 に通知する必要があります。これを行う簡単な方法はありますか?例: スレッド 2 はイメージを更新することを決定する場合があります: そのため、メソッドを実行するようにスレッド 1 に通知する必要がありますchangeImage()

このメソッドをスレッド 2 から直接実行すると、アプリケーションがクラッシュします。pthread を使用する必要があります。

4

1 に答える 1

3

メイン スレッドのみが GUI を更新する必要があります (グラフィカル システムによる制限のため)。

ただし、Qt は、スレッド間のシグナルスロット接続によって許可される拡張スレッド サポートを備えています。実際には、他のスレッドは、シグナルを使用して ( http://qt-project.org/doc/qt-4.8/signalsandslots.htmlemit my_signal()を参照) または( http://qt-project.org/docを参照)を使用して、メイン スレッドに通知する必要があります。/qt-4.8/qcoreapplication.html#postEvent-2 )QCoreApplication::postEvent

于 2013-06-28T18:00:27.407 に答える