ブログトップ 記事一覧 ログイン 無料ブログ開設

Cassiopeiaの日記

2007-08-22

[]Tkinter イベントのバインディング の続き - Tkinter Event and binding 01:10

前回はこちら。


プロトコルイベント - Protocols

イベントを受け取る widgetroot もしくは 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.widthConfigureイベント時のみ、widget の幅。(ピクセル)
event.heightConfigureイベント時のみ、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()
トラックバック - http://d.hatena.ne.jp/Cassiopeia/20070822/1187712650

256973