Tkinter イベントのバインディング の続き - Tkinter Event and binding
プロトコルイベント - Protocols
イベントを受け取る widget は root もしくは Toplevel widget でないといけない。
イベント | 説明 |
---|---|
WM_DELETE_WINDOW | ウィンドウが閉じられる時に発生。 |
# -*- coding: utf-8 -*- #ウィンドウを閉じようとするとメッセージボックスが出る。 from Tkinter import * import tkMessageBox def callback(): if tkMessageBox.askokcancel("Quit?", "Do you like to quit?"): root.destroy() root = Tk() root.protocol("WM_DELETE_WINDOW", callback) root.mainloop()
イベントオブジェクトが保持している属性。- About Event Object
属性名 | 説明 |
---|---|
event.widget | イベントを受け取った widget のインスタンス。 |
event.x | 現在のマウスポインターの x 位置。(ピクセル) |
event.y | 現在のマウスポインターの y 位置。(ピクセル) |
event.x_root | 現在のマウスポインターの 画面上の x 位置。(ピクセル) |
event.y_root | 現在のマウスポインターの 画面上の y 位置。(ピクセル) |
event.char | キーボードイベント時のみ、キャラクタを文字で返す。 |
event.keysym | キーボードイベント時のみ、そのキーのシンボル。 |
event.keycode | キーボードイベント時のみ、このキーのキーコード。 |
event.num | マウスボタンイベント時のみ、押されたマウスボタンのボタン番号。 |
event.width | Configureイベント時のみ、widget の幅。(ピクセル) |
event.height | Configureイベント時のみ、widget の高さ。(ピクセル) |
event.type | イベントのタイプ。 |
# -*- coding: utf-8 -*- #マウスのボタンを押すと左-1 真ん中-2 右-3 を表示する。 from Tkinter import * root = Tk() def callback(event): print event.num frame = Frame(root, width=100, height=100) frame.bind("<Button>", callback) frame.focus_set() frame.pack() root.mainloop()