Python多线程和(共享变量| | Qt)

2024-10-05 14:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在重新设计我的软件,因为上一个我做过的软件崩溃是因为一个启动的进程错误地访问了Qt接口

serialThread = threading.Thread(target=serialCycle)
serialThread.setDaemon(True)
serialThread.start()

serialThread主要等待传入的串行数据,对它们进行解码并将它们放入一个列表中(可能我将移动到numpy数组)。有关连接的信息(串行端口、速度、接收到的数据量)必须写入qtui。我主要使用全局变量在主线程和串行线程之间交换信息;我可以保证每个变量只由一个线程写入,从另一个线程读取以避免出现问题。在

Qt更新有点难以向主线程发送信息,所以我寻找另一种解决方案。我找到了这条线(Updating GUI elements in MultiThreaded PyQT),但我没有领会要点。如果我用slot和signal启动一个线程,我会不会因为多次访问同一个变量而崩溃?在

  • (问题1)启动线程并行运行,因此它们不应该更改qt接口。。。

  • (问题2)不能将整个.ui窗口“链接”到另一个线程,这样这个线程就可以更新它(显然不是主线程)

  • (问题3)哪一种方式是最简单的方式来拥有一个图形用户界面,它可以由关于自身状态的不同线程进行更新(并允许用户更改参数)?

谢谢


Tags: 信息truetarget软件进程错误方式qt