import tkinter as tk window = tk.Tk() # 設置窗口大小 winWidth = 600 winHeight = 400 # 獲取屏幕分辨率 screenWidth = window.winfo_screenwidth() screenHeight = window.winfo_screenheight() x = int((screenWidth - winWidth) / 2) y = int((screenHeight - winHeight) / 2) # 設置主窗口標題 window.title("綁定事件參數說明") # 設置窗口初始位置在屏幕居中 window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y)) # 設置窗口圖標 window.iconbitmap("./image/icon.ico") # 設置窗口寬高固定 window.resizable(0, 0) def callBack(event): print("button is click") btn = tk.Button(window, text="點擊") btn.bind("<Button-1>", callBack) btn.pack() def windowBack(event): print(event.char) window.bind("<Key>", windowBack) window.mainloop()
1、事件序列python
事件序列是以字符串的形式表示的,能夠表示一個或多個相關聯的事件。ide
事件序列使用如下語法描述:oop
<modifier-type-detail>spa
事件序列 | 含義 | 序列 |
---|---|---|
<Button-1> | 用戶點擊鼠標左鍵 | detail |
<KeyPress-H> | 用戶點擊 H 按鍵 | |
<Control-Shift-KeyPress-H> | 用戶同時點擊 Ctrl + Shift + H |
2、type指針
Activate | 當組件的狀態從「未激活」變爲「激活」的時候觸發該事件 |
Button | 1. 當用戶點擊鼠標按鍵的時候觸發該事件 2. detail 部分指定具體哪一個按鍵:<Button-1>鼠標左鍵,<Button-2>鼠標中鍵,<Button-3>鼠標右鍵,<Button-4>滾輪上滾(Linux),<Button-5>滾輪下滾(Linux) |
ButtonRelease | 1. 當用戶釋放鼠標按鍵的時候觸發該事 2. 在大多數狀況下,比 Button 要更好用,由於若是當用戶不當心按下鼠標,用戶能夠將鼠標移出組件再釋放鼠標,從而避免不當心觸發事件 |
Configure | 當組件的尺寸發生改變的時候觸發該事件 |
Deactivate | 當組件的狀態從「激活」變爲「未激活」的時候觸發該事件 |
Destroy | 當組件被銷燬的時候觸發該事件 |
Enter | 1. 當鼠標指針進入組件的時候觸發該事件 2. 注意:不是指用戶按下回車鍵 |
Expose | 當窗口或組件的某部分再也不被覆蓋的時候觸發該事件 |
FocusIn | 1. 當組件得到焦點的時候觸發該事件 2. 用戶能夠用 Tab 鍵將焦點轉移到該組件上(須要該組件的 takefocus 選項爲 True) 3. 你也能夠調用 focus_set() 方法使該組件得到焦點 |
FocusOut | 當組件失去焦點的時候觸發該事件 |
KeyPress | 1. 當用戶按下鍵盤按鍵的時候觸發該事件 2. detail 能夠指定具體的按鍵,例如 <KeyPress-H>表示當大寫字母 H 被按下的時候觸發該事件 3. KeyPress 能夠簡寫爲 Key |
KeyRelease | 當用戶釋放鍵盤按鍵的時候觸發該事件 |
Leave | 當鼠標指針離開組件的時候觸發該事件 |
Map | 1. 當組件被映射的時候觸發該事件 2. 意思是在應用程序中顯示該組件的時候,例如調用 grid() 方法 |
Motion | 當鼠標在組件內移動的整個過程均觸發該事件 |
MouseWheel | 1. 當鼠標滾輪滾動的時候觸發該事件 2. 目前該事件僅支持 Windows 和 Mac 系統,Linux 系統請參考 Button |
Unmap | 1. 當組件被取消映射的時候觸發該事件 2. 意思是在應用程序中再也不顯示該組件的時候,例如調用 grid_remove() 方法 |
Visibility | 當應用程序至少有一部分在屏幕中是可見的時候觸發該事件 |
3、modifiercode
Alt | 當按下 Alt 按鍵的時候 |
Any | 1. 表示任何類型的按鍵被按下的時候 2. 例如 <Any-KeyPress> 表示當用戶按下任何按鍵時觸發事件 |
Control | 當按下 Ctrl 按鍵的時候 |
Double | 1. 當後續兩個事件被連續觸發的時候 2. 例如 <Double-Button-1> 表示當用戶雙擊鼠標左鍵時觸發事件 |
Lock | 當打開大寫字母鎖定鍵(CapsLock)的時候 |
Shift | 當按下 Shift 按鍵的時候 |
Triple | 跟 Double 相似,當後續三個事件被連續觸發的時候 |
4、Event 對象對象
widget | 產生該事件的組件 |
x, y | 當前的鼠標位置座標(相對於窗口左上角,像素爲單位) |
x_root, y_root | 當前的鼠標位置座標(相對於屏幕左上角,像素爲單位) |
keysym | 按鍵名,見下方 Key names(鍵盤事件專屬) |
keycode | 按鍵碼,見下方 Key names(鍵盤事件專屬) |
num | 按鈕數字(鼠標事件專屬) |
width, height | 組件的新尺寸(Configure 事件專屬) |
type | 該事件類型 |
5、Key namesblog
按鍵名(keysym) | 按鍵碼(keycode) | 表明的按鍵 |
---|---|---|
Alt_L | 64 | 左邊的 Alt 按鍵 |
Alt_R | 113 | 右邊的 Alt 按鍵 |
BackSpace | 22 | Backspace(退格)按鍵 |
Cancel | 110 | break 按鍵 |
Caps_Lock | 66 | CapsLock(大寫字母鎖定)按鍵 |
Control_L | 37 | 左邊的 Ctrl 按鍵 |
Control_R | 109 | 右邊的 Ctrl 按鍵 |
Delete | 107 | Delete 按鍵 |
Down | 104 | ↓ 按鍵 |
End | 103 | End 按鍵 |
Escape | 9 | Esc 按鍵 |
Execute | 111 | SysReq 按鍵 |
F1 | 67 | F1 按鍵 |
F2 | 68 | F2 按鍵 |
F3 | 69 | F3 按鍵 |
F4 | 70 | F4 按鍵 |
F5 | 71 | F5 按鍵 |
F6 | 72 | F6 按鍵 |
F7 | 73 | F7 按鍵 |
F8 | 74 | F8 按鍵 |
F9 | 75 | F9 按鍵 |
F10 | 76 | F10 按鍵 |
F11 | 77 | F11 按鍵 |
F12 | 96 | F12 按鍵 |
Home | 97 | Home 按鍵 |
Insert | 106 | Insert 按鍵 |
Left | 100 | ← 按鍵 |
Linefeed | 54 | Linefeed(Ctrl + J) |
KP_0 | 90 | 小鍵盤數字 0 |
KP_1 | 87 | 小鍵盤數字 1 |
KP_2 | 88 | 小鍵盤數字 2 |
KP_3 | 89 | 小鍵盤數字 3 |
KP_4 | 83 | 小鍵盤數字 4 |
KP_5 | 84 | 小鍵盤數字 5 |
KP_6 | 85 | 小鍵盤數字 6 |
KP_7 | 79 | 小鍵盤數字 7 |
KP_8 | 80 | 小鍵盤數字 8 |
KP_9 | 81 | 小鍵盤數字 9 |
KP_Add | 86 | 小鍵盤的 + 按鍵 |
KP_Begin | 84 | 小鍵盤的中間按鍵(5) |
KP_Decimal | 91 | 小鍵盤的點按鍵(.) |
KP_Delete | 91 | 小鍵盤的刪除鍵 |
KP_Divide | 112 | 小鍵盤的 / 按鍵 |
KP_Down | 88 | 小鍵盤的 ↓ 按鍵 |
KP_End | 87 | 小鍵盤的 End 按鍵 |
KP_Enter | 108 | 小鍵盤的 Enter 按鍵 |
KP_Home | 79 | 小鍵盤的 Home 按鍵 |
KP_Insert | 90 | 小鍵盤的 Insert 按鍵 |
KP_Left | 83 | 小鍵盤的 ← 按鍵 |
KP_Multiply | 63 | 小鍵盤的 * 按鍵 |
KP_Next | 89 | 小鍵盤的 PageDown 按鍵 |
KP_Prior | 81 | 小鍵盤的 PageUp 按鍵 |
KP_Right | 85 | 小鍵盤的 → 按鍵 |
KP_Subtract | 82 | 小鍵盤的 - 按鍵 |
KP_Up | 80 | 小鍵盤的 ↑ 按鍵 |
Next | 105 | PageDown 按鍵 |
Num_Lock | 77 | NumLock(數字鎖定)按鍵 |
Pause | 110 | Pause(暫停)按鍵 |
111 | PrintScrn(打印屏幕)按鍵 | |
Prior | 99 | PageUp 按鍵 |
Return | 36 | Enter(回車)按鍵 |
Right | 102 | → 按鍵 |
Scroll_Lock | 78 | ScrollLock 按鍵 |
Shift_L | 50 | 左邊的 Shift 按鍵 |
Shift_R | 62 | 右邊的 Shift 按鍵 |
Tab | 23 | Tab(製表)按鍵 |
Up | 98 | ↑ 按鍵 |