串行,线程,Tkinter:RuntimeE

2024-09-28 23:33:08 发布

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

我一直在尝试基于以下代码构建一个简单的串行监视器: https://aboesch.wordpress.com/2013/04/28/python-code-gui-for-controlling-serial-port-and-live-monitoring/

这是利用线程,我认为这并不总是发挥良好的Tkinter。我是新手,尝试做一些非常基本的事情(在RPi和Arduino之间发送串行通信)。昨天这段代码运行时没有出错

Exception in thread Updating:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/home/pi/sendstring_NEWTEST.py", line 21, in run
    UpdateC.set(self.update_count)
  File "/home/pi/sendstring_NEWTEST.py", line 37, in run
    c_var.set(self.request_dict["c"])
 RuntimeError: main thread is not in main loop

我将粘贴我的代码在下面,它仍然正确发送,但它只会读一到两次,如果有的话。(不管是什么令人困惑的原因,同一个代码昨天运行了一整天,没有错误)。我知道在主线程之外运行GUI有一个问题,但是我没有足够的知识来理解如何修复它。我正在寻找一些方向,最好是在修改当前代码方面的一些帮助,但要有新的方向。我已经研究过queue's,我刚开始使用serial,正在寻找一种稳定的读写字符串的方法。谢谢你的阅读

^{pr2}$

Tags: run代码inpyselfhomemainline