"Touch me" をクリックする度にメッセージが変化するスクリプト。
C:\> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> python # -*- coding: Shift_JIS -*- import sys, Tkinter def b1Press(ev): """ マウスボタン 1 が押された時に実行したい処理 """ l.config(text = "Button 1 press") def b1Release(ev): """ マウスボタン 1 が離された時に実行したい処理 """ l.config(text = "Button 1 release") w = Tkinter.Tk() t = w.title("Act1") l = Tkinter.Label(w, text = "Touch me") l.bind("<ButtonPress-1>", b1Press) l.bind("<ButtonRelease-1>", b1Release) l.pack() Tkinter.Button(w, text = "OK", command = sys.exit).pack() w.mainloop()
bind に指定できるイベントシーケンス (Tkinter は Tk のラッパーなので、実は Tk への指定です)
Meta,Mod は Windows に無いので除外しています。
修飾 キー 備考 Shift
Control
Alt
Lock
Double
Triple
Button1 または B1
Button2 または B2
Button3 または B3
Button4 または B4
Button5 または B5
ButtonPress または Button さらに -N を付加することで特定のボタンを指定できる。
例: <Shift-Button-1>ButtonRelease KeyPress または Key さらに -K を付加することで特定のキーを指定できる。
例: <Control-Key-a>KeyRelease Enter パーツの領域にマウスカーソルが入ったとき起こるイベント。
キーボードの [Enter] は Return なので、これとは違う。Leave パーツの領域からマウスカーソルが出たときに起こるイベント。 Motion パーツ内でマウスが動くと起こるイベント。 なし Configure パーツに設定が行われたとき起こるイベント。
設定変更でも起こるので下手に組むと自分を設定変更したとき無限に Configure が起こる可能性が…。Circulate Colormap Destroy Expose パーツが表示されたときに起こるイベント。 FocusIn FocusOut Gravity 親パーツの影響で自分が移動したときに起こるイベント。 Map パーツがアイコンから復元されたとき起こるイベント。 Unmap Reparent Visibility パーツが描き直されたとき起こるイベント。
Lock は [CapsLock] のことです。
<B1-Button-2> はマウスのボタン 2 が押されたとき、ボタン 1 が押されている状態のことを表します。(B1 単体では使用できません)
<Button-1><Button-1> はボタン 1 が 2 回押された状態を表します。(ダブルクリックとは違います)
押されたキーを表示するスクリプト。イベントインスタンスにはメソッドがあり、詳細を知るにはこのメソッドを呼び出します。
入力フォーカスはメインウィンドウから移動しないので、メインウィンドウにイベントハンドラをバインドしています。
C:\> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> python # -*- coding: Shift_JIS -*- import sys, Tkinter def keyPress(ev): """ 何かキーが押された時に実行したい処理 """ l.config(text = ev.keysym) w = Tkinter.Tk() t = w.title("Act2") w.bind("<Key>", keyPress) l = Tkinter.Label(w, text = "Hit any key") l.pack() Tkinter.Button(w, text = "OK", command = sys.exit).pack() w.mainloop()
メソッド 対応する Tk 表記 意味 widget %W keysym %K 押された (離された) キーのシンボルを返す。
[Enter] は Return、[Del] は Delete となる。keysym_num %N keycode %k x %x マウスの座標を返す。 y %y x_root %X y_root %Y focus %f width %w height %h state %s time %t char %A send_event %E type %T