2017-04-24 79 views
-1

我只是學習用PyQt編程GUI。我試圖製作的圖形用戶界面也是一個Arduino與Pyserial庫的價值。我得到它的工作,但在幾個發送後,GUI凍結。 我在某處讀取線程可以解決這個問題,所以我嘗試了這一點,但我無法弄清楚如何從主線程發送工作線程的值。例如,我想發送123號的工作線程。我如何去做這件事?將值發送給工作線程PyQt?

+1

請添加一段代碼,以便更好地理解。 – VMRuiz

回答

0

您可以初始化它的時候,這樣的參數傳遞給一個QThread

import sys 
from PyQt4 import QtGui, QtCore 

class FooThread(QtCore.QThread): 

    def __init__(self, foo): 
     super(FooThread, self).__init__() 
     self.foo = foo 

    def run(self): 
     print self.foo  

def main(): 

     app = QtGui.QApplication(sys.argv) 
     foo_thread = FooThread('foo') 
     foo_thread.start() 
     foo_thread.finished.connect(QtGui.qApp.exit) 
     sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 

這個片段將創建一個PyQt的應用程序,然後開始打印出傳遞給它的構造函數參數(線程在上面的例子中,它打印foo),然後終止應用程序的執行。 希望它有幫助!

+0

嘿,這個方法確實有效。我的Arduino代碼也有問題。仍然想知道是否有辦法在您每次發送價值時不必打開線程。謝謝! –

+0

@Konnenhom先生其實我想我可以爲你推薦一個解決方案,如果你願意的話。 – Szabolcs

+0

那太棒了! –