2017-04-24 4 views
-1

私はPyQtを使ってGUIをプログラミングすることを学んでいます。私が作ろうとしているGUIは、Pyserialライブラリを持つArduinoにも価値があります。私はそれが働いているが、いくつかの送信後にGUIがフリーズする。 私はどこかでスレッドがこれを解決できることを読んだので、これを試しましたが、メインスレッドから値があまりにも大きすぎるスレッドを送信する方法を理解できません。たとえば、私は123番の番号も作業スレッドに送りたいと思う。これについてどうすればいいですか?ワーカースレッドに値を送信するPyQt?

+1

わかりやすくするために、コードのスニペットを追加してください。 – VMRuiz

答えて

0

あなたはそれを初期化するとき、このように、QThreadにパラメータを渡すことができます。このスニペットはPyQtはアプリケーションを作成します

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() 

をして、そのコンストラクタに渡されたパラメータを(プリントアウトするスレッドを開始上記の例ではfooを出力します)、アプリケーションの実行を終了します。 お手伝い願います!

+0

ちょっと、このメソッドは実際に働いた。私のArduinoコードにも何か間違っていました。あなたが値を送信するたびにスレッドを開く必要がない方法があるかどうかはまだ不思議です。ありがとう! –

+0

@ Mr.Konnenhom実際、私が望むのであれば、あなたにもその解決策を提案できると思います。 – Szabolcs

+0

それは素晴らしいだろう! –

関連する問題