2014-11-07 49 views
0

我有這個基本的應用程序工作。它創建一個新的線程,並啓動它。然後它使用信號與主線程進行通信以發生其他事情。從主應用程序線程通信到單獨QThread

我的問題是如何將數據從主線程傳遞到創建的新線程,這部分對我來說確實沒有意義。或者還有另外一種方法可以來回穿梭。本質上,主線程和新線程將在應用程序的整個生命週期中運行,因此它們需要來回交流。

作爲一個說明我是一個Web開發人員,所以本機應用程序是我的新手。此外,我仍然是新的qtpyqt所以不知道如何做到這一點。

import sys 

from PyQt4 import QtGui 
from PyQt4.QtCore import QThread, pyqtSignal 


class Thread(QThread): 
    message_recieved = pyqtSignal(object) 

    def run(self): 
     self.message_recieved.emit('hello') 

class Main(QtGui.QMainWindow): 
    def __init__(self, parent = None): 
     QtGui.QMainWindow.__init__(self,parent) 

     self.initUI() 

     self.thread = Thread() 
     self.thread.message_recieved.connect(self.message) 
     self.thread.start() 

    def message(self, msg): 
     print msg 

    def initUI(self): 
     self.setGeometry(100, 100, 800, 600) 
     self.setWindowTitle("Test App") 

def main(): 
    app = QtGui.QApplication(sys.argv) 

    main = Main() 
    main.show() 

    sys.exit(app.exec_()) 

if __name__ == "__main__": 
    main() 

回答

相關問題