メイン ウィンドウと PyQt のスレッド間でのデータの通信
PyQt アプリケーションでは、一般的なシナリオとして、メイン ウィンドウとスレッドの間でデータを共有することが含まれます。スレッドの安全性を維持しながらスレッドを実行します。推奨されるアプローチは次のとおりです:
シグナルとスロット:
例:
<code class="python">class Worker(QtCore.QThread): beep = QtCore.pyqtSignal(int) def __init__(self, sleep_time): super(Worker, self).__init__() self.sleep_time = sleep_time def run(self): i = 0 while True: i += 1 self.beep.emit(i) time.sleep(self.sleep_time) class MainWindow(QtGui.QWidget): def __init__(self): # ... self.worker = Worker(1) # Initial sleep time self.worker.beep.connect(self.update) self.worker.start() def update(self, number): # Update widget with number self.output.display(number)</code>
注意事項:
その他のアプローチ:
以上がPyQt のメイン ウィンドウとスレッド間でデータを安全に通信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。