在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中文網其他相關文章!