Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否将值发送到工作线程PyQt?_Python_Multithreading_Arduino_Pyqt_Pyserial - Fatal编程技术网

Python 是否将值发送到工作线程PyQt?

Python 是否将值发送到工作线程PyQt?,python,multithreading,arduino,pyqt,pyserial,Python,Multithreading,Arduino,Pyqt,Pyserial,我正在学习用PyQt编程GUI。我正在尝试制作的GUI通过Pyserial库发送一个Arduino值。我让它工作,但几次发送后GUI冻结。 我在某个地方读到线程可以解决这个问题,所以我尝试了这个方法,但我不知道如何从主线程向工作线程发送一个值。例如,我想将数字123也发送到工作线程。如何执行此操作?初始化时,可以将参数传递给QThread,如下所示: import sys from PyQt4 import QtGui, QtCore class FooThread(QtCore.QThrea

我正在学习用PyQt编程GUI。我正在尝试制作的GUI通过Pyserial库发送一个Arduino值。我让它工作,但几次发送后GUI冻结。
我在某个地方读到线程可以解决这个问题,所以我尝试了这个方法,但我不知道如何从主线程向工作线程发送一个值。例如,我想将数字123也发送到工作线程。如何执行此操作?

初始化时,可以将参数传递给
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
),然后终止应用程序的执行。
希望有帮助

请添加一段代码以便更好地理解。嘿,这个方法确实有效。我的Arduino代码也有问题。仍然想知道是否有一种方法可以让您不必每次发送值时都打开线程。谢谢@事实上,如果你愿意,我想我也可以为你推荐一个解决方案。那太好了@Konnenhom先生,看看这个:。希望这就是你要找的。这正是我要找的!谢谢你的帮助!