2

外部プログラムにデータを書き込み、UDP 接続を介して外部プログラムからデータを読み取る TKinter GUI があります。外部プログラムは 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 メソッドを 1 秒に 1 回実行したいと考えています。発生する可能性のある他のすべての Tkinter イベントを中断せずにこれを行うにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

いくつか突っついた後、私自身の質問を考え出しました。時限コールバックは .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)
于 2013-05-05T20:35:30.813 に答える