【Python】Tkinterで自動的に更新されるGUIを作成する方法を解説
GUIウィンドウには、ラベル、ボタン、テキストボックスなど、さまざまなコントロール(ウィジェット)が配置されます。場合によっては、ウィンドウを表示している最中に、ラベルなどのコントロールの内容を自動的に更新したいことがあります。
そんなときに便利なのが after() メソッドです。after() を使うと、指定した時間が経過した後に任意の関数を実行できます。たとえば「1000ミリ秒」は1秒を意味します。この仕組みを利用して一定時間ごとに関数を呼び出し続けることで、テキストの書き換えなど、必要な更新処理を自動的に行うことができます。
ここでは、ウィンドウ上に配置したラベルのテキストを1秒ごとに自動的に更新する例を紹介します。説明をシンプルにするために、ラベルには「0から1000までのランダムな数値」を表示し、その数値が1秒ごとに切り替わるようにします。
実装のポイントは、ラベルのテキストを0〜1000のランダムな整数に変更する関数を定義し、その関数を after() を使って1秒間隔で繰り返し呼び出すことです。
コード例
from tkinter import *
from random import randint
root = Tk()
lab = Label(root)
lab.pack()
def update():
lab['text'] = randint(0, 1000)
root.after(1000, update) # 1000ミリ秒(1秒)後に自分自身を再度実行する
# 最初に一度だけ実行
update()
root.mainloop()このコードを実行すると、1000ミリ秒(1秒)ごとにラベルのテキストが新しい数値へと自動的に切り替わります。時間間隔は用途に応じて自由に変更でき、update 関数の中身を書き換えれば、デジタル時計やリアルタイムデータの表示など、さまざまな定期更新処理に応用できます。
root.after(1000, update) の役割
この一行こそが、update() 関数を繰り返し呼び出すための核心部分です。
- 第1引数:関数を再び呼び出すまでの待ち時間をミリ秒単位で指定します。
- 第2引数:呼び出したい関数の名前を指定します。
なお、サンプルコードでは update() の中で自身を after() で登録し直すことで、永続的な定期実行を実現しています。これは Tkinter におけるタイマー処理の定番パターンなので、覚えておくと非常に便利です。
-
PythonとTkinterでデジタル時計を作成する方法【初心者向け解説】
Pythonの標準GUIライブラリ「Tkinter」を使えば、デスクトップアプリケーションを手軽に開発できます。本記事では、Tkinterを活用して、時・分・秒をリアルタイムに表示するデジタル時計を作成する方法を解説します。 デジタル時計の仕組み このプログラムでは、Pythonのtimeモジュールからstrftimeメソッドを使用し、「時:分:秒」形式で現在時刻を取得して表示します。具体的な流れは以下の通りです。 strftime(%H:%M:%S)で現在時刻を文字列として取得する Tkinterのラベル(Label)ウィジェットを作成し、時刻を表示する after()メソッドを使い、20
-
PythonとTkinterで作る!初心者向けシンプルGUI計算機の作り方
このチュートリアルでは、Pythonの標準モジュールTkinterを使用して、シンプルなGUI計算機を作成します。TkinterはPythonに組み込まれているGUIアプリケーション開発用のモジュールで、追加インストールが不要で手軽に使えるのが魅力です。GUIアプリケーションを活用すれば、データや計算結果を視覚的にわかりやすく操作できます。 それでは、シンプルなGUI計算機の作り方を見ていきましょう。 作成の手順 Tkinterからすべての機能を「*」でインポートします。 計算機のインターフェース(ウィンドウ)を作成します。 入力フィールドに数字を入力する関数(input_number)を作