TKinter afterメソッド:再帰的コールによる自動更新
GUIの表示を定期的に更新したくなるのはリアルタイムデータ処理では避けられない(と思う)。
GUI表示自体はTKinterで容易にできるようだけれど、それを定期的に更新する方法を調べて実装してみた。背景にあるのは、Pico+TWELITEによって定期的に取得する超音波距離センサー・データをGUI表示するためだ。
ここで使うのはTKinterが提供するafterメソッドだ。afterメソッドは、このメソッドコール後に実行するFunctionと、その実行までの待機時間をパラメータとして指定する。このFunctionとして、このafterメソッドを実行するFunction自体を指定すると再帰的なコールが実行される。つまり、指定した待機時間後のそのFunctionが繰り返し実行されるようになるわけだ。このFunctionにてGUIを描画すれば、定期ていなGUIアップデータ実現する。
class GUI(tk.Frame):
def update(self):
# GUIを描画するコード
self.after(100,self.update) # 100ms後に自分自身を実行する。結果的にループ化する
if __name__ == "__main__":
gui = tk.Tk()
app = GUI(master = gui)
app.update() # updateをコールして再帰的コールをキックする
app.mainloop() # 以後のイベント処理はmainloop内で実行される
ネット上に公開されている先人の知恵に学びながら作成した参考コードは以下からダウンロードできる。
また具体的な工作内容はこちらから参照できる。
aftetrメソッドを上手く使えばいろいろな事ができそうだ。
« Raspberry Pi でのUSB CDC ACM | トップページ | Raspberry Pi 4でscipyをimport »
「ラズパイ日記」カテゴリの記事
- NEO-7M GPSモジュールが中国から届いた(2023.01.15)
- TNCアプリにおけるDemoduatorの動作確認(2023.01.09)
- AFSKでの復調について(2023.01.04)
- APRSでのNRZIについて備忘録(2023.01.02)
- pico_tnc 2200Hz(Space)でPhaseをずらす件の備忘録(2022.12.31)
「TWELITE日記」カテゴリの記事
- TWELITEでソーラーパワーを使う - その4(2024.01.28)
- TWELITEでソーラーパワーを使う - その3(2024.01.26)
- TWELITEでソーラーパワーを使う - その2(2024.01.23)
- TWELITEでソーラーパワーを使う(2024.01.23)
- ゼロプレシャーICソケットに細いピンヘッダーを取り付けた(2024.01.20)
« Raspberry Pi でのUSB CDC ACM | トップページ | Raspberry Pi 4でscipyをimport »
コメント