我有一个TKinter GUI,通过向外部程序写入数据并通过UDP连接从外部程序读取数据来与外部程序进行交互。外部程序以1Hz的频率发送状态消息,我希望在我的TKinter类中有一个接收该数据的循环回调,但我不确定如何完成。以简化的形式,这就是我所拥有的:
class App:
def __init__(self,master):
# Code that creates all the gui buttons, scales, etc
def SendValues(self,event):
# Code that sends the values of all the scales upon a button press
def ReceiveValues(self):
# Code that receives UDP data and then sets Tkinter variables accordingly
我希望ReceiveValues方法每秒执行一次。如何在不中断可能发生的所有其他Tkinter事件的情况下执行此操作?
谢谢!
答案 0 :(得分:1)
在做了一些探讨之后想出了我自己的问题。定时回调可以使用.after()方法完成:
class App:
def __init__(self):
self.root = tk()
def SendValues(self,event):
# Code that sends the values of all the scales upon a button press
def ReceiveValues(self):
# Code that receives the values and sets the according Tkinter variables
self.root.after(1000, self.ReceiveValues)