Up

デジタル時計

 

図1に示すデジタル時計のスクリプトをリスト1のように作成した。

図1

 

リスト1

import tkinter as tk

from datetime import datetime

 

root = tk.Tk()

 

def f_close(event):

    root.destroy()

 

frame = tk.Frame(root)

 

button = tk.Button(frame, text = 'Close')

button.grid(row = 0, column = 10, padx = 5, sticky = 'e')

button.bind('<Button-1>', f_close)

 

canvas = tk.Canvas(frame, bg = '#ffffff', width = 800, height = 400)

canvas.grid(row = 1, columnspan = 11, rowspan = 1)

 

frame.pack()

canvas.create_text(400, 200, text = ' ', font = ('Gothic', 100), tags = 'mytext')

 

def check_time():

    now = datetime.now()

    s = '{0:0>2d}:{1:0>2d}:{2:0>2d}'.format(now.hour, now.minute, now.second)

    canvas.itemconfig('mytext', text = s)

    root.after(100, check_time)

 

check_time()

root.mainloop()

 

リスト1のスクリプトを実行すると図1のフォームが提示され、時刻が表示される。表示時刻は、コード

root.after(100, check_time)

で設定された100ミリ秒後に呼び出される関数check_timeによって更新される。

右上の「Close」ボタンのクリック(イベント)で、関数f_close(コールバック関数)が呼び出されてフォームが閉じられ、プログラムの実行終了となる。このボタンクリックと関数f_closebindは、コード

button.bind('<Button-1>', f_close)

によって設定されている。

 

Up