Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Tkinterのafter()メソッドの使い方を徹底解説

Tkinterは、PythonでGUIアプリケーションを作成するための標準ライブラリです。ウィンドウやボタン、ラベルなどのウィジェットを作成・操作するための組み込みメソッドが多数用意されており、データの表示やGUIイベントの処理を簡単に実装できます。本記事では、その中でも特に便利なafter()メソッドの使い方について、具体的なコード例とともに詳しく解説します。

after()メソッドの基本構文

.after(delay, FuncName=FuncName)

このメソッドは、指定した遅延時間(ミリ秒単位)が経過した後に、引数として渡した関数FuncNameを呼び出します。タイマー処理や定期的な更新処理などに活用できる、Tkinter開発において欠かせないメソッドです。

after()メソッドでウィジェットを表示する

まずは、フレーム内に曜日のリストをランダムな順序で表示するサンプルを見てみましょう。randomモジュールとafter()メソッドを組み合わせることで、500ミリ秒ごとにリストからランダムに選んだテキストを順次表示していく処理を実現しています。

コード例

import random
from tkinter import *

base = Tk()

a = Label(base, text="After() Demo")
a.pack()

contrive = Frame(base, width=450, height=500)
contrive.pack()

words = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri','Sat','Sun']
# 曜日をランダムな順序で1つずつ表示する
def display_weekday():
   if not words:
   return
   rand = random.choice(words)
   character_frame = Label(contrive, text=rand)
   character_frame.pack()
   contrive.after(500,display_weekday)
   words.remove(rand)

base.after(0, display_weekday)
base.mainloop()

上記のコードを実行すると、以下のような結果が得られます。

Python Tkinterのafter()メソッドの使い方を徹底解説

同じプログラムを再度実行すると、今度は異なる順序で単語が表示されます。これはrandom.choice()によって毎回異なる単語が選択されるためです。

Python Tkinterのafter()メソッドの使い方を徹底解説

after()メソッドで処理を停止する

次の例では、after()メソッドを遅延機構として活用し、一定時間だけ処理を実行してから停止させる方法を紹介します。ここでは、destroy()メソッドと組み合わせることで、指定時間が経過した時点でウィンドウを破棄し、処理を終了させています。

コード例

from tkinter import Tk, mainloop, TOP
from tkinter.ttk import Button

from time import time

base = Tk()

stud = Button(base, text = 'After Demo()')
stud.pack(side = TOP, pady = 8)

print('processing Begins...')

begin = time()

# 3000ミリ秒(3秒)後にウィンドウを破棄する
base.after(3000, base.destroy)

mainloop()

conclusion = time()
print('process destroyed in % d seconds' % ( conclusion-begin))

上記のコードを実行すると、コンソールには以下のように出力されます。プログラム開始から約3秒後に自動的にウィンドウが閉じられ、処理が終了することが確認できます。

processing Begins...
process destroyed in 3 seconds
  1. PythonのTkinterプログラミング入門:GUIアプリケーション開発の基本

    TkinterとはTkinterは、Pythonに標準で付属しているGUI(グラフィカルユーザーインターフェース)ライブラリです。PythonとTkinterを組み合わせることで、手軽かつスピーディーにGUIアプリケーションを構築できます。Tkinterは、Tk GUIツールキットへの強力なオブジェクト指向インターフェースを提供しており、ボタンやラベルなどの部品(ウィジェット)を直感的に配置できるのが特徴です。GUIアプリケーション作成の基本手順Tkinterを使ったGUIアプリケーションの作成はとてもシンプルです。基本的には、以下の手順に従うだけで実装できます。Tkinterモジュールをイン

  2. Python Tkinterのgeometry()メソッド徹底解説!ウィンドウサイズと配置を自在に制御する方法

    Pythonでは、標準ライブラリ「Tkinter」を使うことで、手軽にGUIアプリケーションを作成できます。TkinterにはGUI開発に役立つ多数のメソッドが用意されていますが、その中でもgeometry()メソッドは最も基本となる重要なメソッドの一つです。このメソッドを使うことで、作成するウィンドウのサイズや表示位置など、画面レイアウトに関するさまざまな属性を自由に設定できます。 geometry()メソッドとは geometry()メソッドは、ウィンドウの大きさを「幅x高さ」という形式の文字列で指定するためのメソッドです。サイズはピクセル単位で制御されるため、レイアウトを細かく調整したい