编辑:根据评论的反馈进行了一些更改。
我正在尝试使用statusTextF函数在python GUI上显示WAIT / READY消息。
我一开始就定义了绘制GUI的时间。
statusText = True
然后在我希望它等待时调用以下内容:
statusText = False
我在任何使用它的地方都将statusText称为全局变量,并且具有statusTextF函数,如下所示:
def statusTextF():
if statusText == True:
statusTitle = tk.Label(root,text="READY")
statusTitle.config(font=statusFont,bg="light green")
statusX = 500
statusY = 450
statusTitle.place(x=statusX,y=statusY)
separation = 45
else:
statusTitle = tk.Label(root,text="WAIT")
statusTitle.config(font=statusFont,bg="light red")
statusX = 500
statusY = 450
statusTitle.place(x=statusX,y=statusY)
separation = 45
虽然我一直都在看'READY'
。
可能有什么问题?
现在,它什么也没显示,而且我得到淡红色是未知的颜色错误。
这里是如何做自己想做的事的示范。它在主GUI线程和状态更新线程之间不使用Queue
进行通信,因为它们之间交换的信息量非常少。相反,它使用threading.Lock
控制对它们之间共享的全局变量的访问。请注意,它也隐式地用于保护对separation
全局的更新。
使用queue.Queue
交换信息应该非常容易实现-如果出于某种原因需要一个信息-因为它们不需要单独的queue.Queue
,因为它们在内部实现了“所有必需的锁定语义”。] >
注意:我试图(大部分)遵循Lock
使其可读性强-我强烈
PEP 8 - Style Guide for Python Code