一: 鼠標事件python
<Button-1> 鼠標左鍵單擊canvas
<Button-2> 鼠標中鍵單擊app
<Button-3> 鼠標右鍵單擊python2.7
<1> = <Button-1> =<ButtonPress-1>函數
<2> = <Button-2> = <ButtonPress-2>oop
<3> = <Button-3> =<ButtonPress-3>spa
<B1-Motion> 鼠標左鍵拖動指針
<B2-Motion> 鼠標中鍵拖動code
<B3-Motion> 鼠標右鍵拖動orm
<ButtonRelease-1> 鼠標左鍵釋放
<ButtonRelease-2> 鼠標中鍵釋放
<ButtonRelease-3> 鼠標右鍵釋放
<Double-Button-1> 鼠標左鍵雙擊
<Double-Button-2> 鼠標中鍵雙擊
<Double-Button-3> 鼠標右鍵雙擊
<Enter> 鼠標指針進入控件
<Leave> 鼠標指針離開控件
二:鍵盤事件
<Return> 回車
<Cancel> Break鍵
<BackSpace> BackSpace鍵
<Tab> Tab鍵
<Shift_L> Shift鍵
<Alt_L> Alt鍵
<Control_L> Control鍵
<Pause> Pause鍵
<Caps_Lock> Caps_Lock鍵
<Escape> Escapel鍵
<Prior> PageUp鍵
<Next> PageDown鍵
<End> End鍵
<Home> Home鍵
<Left> 左箭頭
<Up> 上箭頭
<Right> 右箭頭
<Down> 下箭頭
<Print> Print Screen鍵
<Insert> Insert鍵
<Delete> Delete鍵
<F1> F1鍵
. .
. .
<F12> F12鍵
<Num_Lock> Num_Lock鍵
<Scroll_Lock> Scroll_Lock鍵
<key> 任意鍵
三: 可打印的字符:
a 字母a
b 字母b
1 數字1
<KeyPress-a>
<KeyRelease-a>
A shift+a
B shift+b
四: 組合鍵:
<Shift-Up> Shift+Up
<Alt-Up> Alt+Up
<Control-Up> Ctrl+Up
<Control-A> Ctrl+shift+a
五:窗體事件:
<Configure> 改變大小或位置
<Visibility> 當組件變爲可視狀態時觸發
<Unmap> 當組件由顯示狀態變爲隱藏狀態時觸發
<Map> 當組件由隱藏狀態變爲顯示狀態時觸發
<Expose> 當組件從本來被其餘組件遮蓋的狀態中暴漏出來時觸發
<FocusIn> 組件得到焦點時觸發
<FocusOut> 組件失去焦點時觸發
<Circulate> 當窗體因爲系統協議要求在堆棧中置頂或壓底時觸發
<Colormap> 當窗體的顏色或外貌改變時觸發,Tk中忽略此細則
<Property> 當窗體的屬性被刪除或改變時觸發,屬於TK的核心
<Destroy> 當組件被銷燬時觸發
<Activate> 與組件選項中的state項有關,表示組件由不可用變爲可用時觸發
<Deactiavte> 與組件選項中的state項有關,表示組件由可用變爲不可用時候觸發
六: Event
widget 事件被觸發的控件
x, y 鼠標距離窗體左上角的位置(座標)
x_root, x_y 鼠標距離屏幕左上角的位置(座標)
char 鍵盤事件對應的字符代碼
keysym 鍵盤事件對應的字符串
keycode 鍵盤事件對應的按鍵碼
num 鼠標事件對應的按鍵碼
width, height 控件的新大小
type 事件類型
列子
# encoding: utf-8 from Tkinter import * class MouseKeyEventDemo: def __init__(self): # 窗口和標題 window = Tk() window.title("鼠標鍵盤事件") # 打包一個白色畫布到窗口 canvas = Canvas(window, width=200, height=200, bg="white") canvas.focus_set() # 讓畫布得到焦點,對於鍵盤 canvas.pack() # 綁定鼠標左鍵事件,交由processMouseEvent函數去處理,事件對象會做爲參數傳遞給該函數 canvas.bind(sequence="<Button-1>", func=self.processMouseEvent) # 綁定鼠標鍵盤事件,交由processKeyboardEvent函數去處理,事件對象會做爲參數傳遞給該函數 canvas.bind(sequence="<Key>", func=self.processKeyboardEvent) # 消息循環 window.mainloop() # 處理鼠標事件,me爲控件傳遞過來的鼠標事件對象 def processMouseEvent(self, me): print("me=", type(me)) # me= <class> print("位於屏幕", me.x_root, me.y_root) print("位於窗口", me.x, me.y) print("位於窗口", me.num) # 處理鼠標事件,ke爲控件傳遞過來的鍵盤事件對象 def processKeyboardEvent(self, ke): print("ke.keysym", ke.keysym) # 按鍵別名 print("ke.char", ke.char) # 按鍵對應的字符 print("ke.keycode", ke.keycode) # 按鍵的惟一代碼,用於判斷按下的是哪一個鍵</class></key></button-1> MouseKeyEventDemo()
以上代碼已在python2.7上運行成功