日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python函数调用键盘热键_Tkinter对键盘和鼠标事件的处理

發布時間:2024/1/23 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数调用键盘热键_Tkinter对键盘和鼠标事件的处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所謂event事件就是程序上發生的事。例如用戶敲擊鍵盤上的某一個鍵或是點擊移動鼠標。而對于這些事件,程序需要做出反應。

Tkinter提供的組件通常都包含許多內在行為,例如當按鈕被點擊時執行特定操作或是當一個輸入欄成為焦點,而您又敲擊了鍵盤上的某些按鍵,您所輸入的內容就會顯示在輸入欄內。

不過,Tkinter的事件處理允許您創建、修改或是刪除這些行為。

首先給出如下定義:

事件處理者:程序中在當事件發生時被調用的某個函數。

當您為您的程序建立一個處理某一事件的事件處理者,稱之為綁定。

綁定級別:

三個級別:

實例綁定:將事件與一特定的組件實例綁定。例如您可以將按下PageUp按鍵這一事件與一個Canvas組件實例綁定,來處理Canvas的翻頁。調用組件實例的.bind()函數為組件實例綁定事件。例如,假設您聲明了一個名為canvas的Canvas組件對象。您想在canvas上,當按下鼠標中鍵時畫上一條線。您可以這樣實現:canvas.bind(“”, drawline)

其中bind函數的第一個參數是事件描述符,他指定無論什么時候在canvas上,當按下鼠標中鍵時就調用事件處理函數drawline進行畫線的任務。特別的是:drawline后面的圓括號是省略的。Tkinter會將此函數填入相關參數后調用運行。在這里只是連結性聲明而以。

類綁定:將事件與一組件類綁定。例如您可以綁定按鈕組件類,使得所有按鈕實例都可以處理鼠標中鍵事件作相應的操作。調用任意組件實例的.bind_class()函數為特定組件類綁定事件。例如,假設您聲明了若干個Canvas組件對象。您想在這些對象上,當按下鼠標中鍵時都能畫上一條線。您可以這樣實現:widget.bind_class(“Canvas”, “”, drawline)

其中widget是任意組件對象。

程序界面綁定:當無論在哪一組件實例上觸發某一事件,程序都作出相應的處理。例如您可能會將PrintScreen鍵與程序中的所有組件對象綁定,這樣的話整個程序界面就能處理打印屏幕的事件了。調用任意組件實例的.bind_all()函數為程序界面綁定事件。例如您可以這樣實現打印屏幕:widget.bind_all( “”,printScreen)。

事件隊列:

Tkinter為您定義正確的事件提供了強大的通用方式。一般來說,事件隊列是包含了一個或多個事件類型的字符串。每一個事件類型指定了一項事件,當有多項事件類型包含于事件隊列中,當且僅當描述符中全部事件發生時才調用處理函數。

事件類型的通用格式:

事件類型必須放置于尖括號<>內。type描述了通用類型,例如鍵盤按鍵、鼠標點擊。

modifier用于組合鍵定義,例如Control、Alt。detail用于明確定義是哪一個鍵或按鈕的事件,例如1表示鼠標左鍵、2表示鼠標中鍵。

舉例:按下鼠標左鍵。

按下鍵盤上的A鍵

同時按下了Control、Shift、A三鍵。

事件類型:

鍵盤事件:

名 稱

描 述

KeyPress

按下鍵盤某鍵時觸發,可以在detail部分指定是哪個鍵。

KeyRelease

按下鍵盤某鍵時觸發,可以在detail部分指定是哪個鍵。

鼠標事件:

名 稱

描 述

ButtonPress

按下鼠標某鍵,可以在detail部分指定是哪個鍵。

ButtonRelease

釋放鼠標某鍵,可以在detail部分指定是哪個鍵。

Motion

點中組件的同時托拽組件移動時觸發。

Enter

當鼠標指針移進某組件時,該組件觸發。

Leave

當鼠標指針移出某組件時,該組件觸發。

MouseWheel

當鼠標滾輪滾動時觸發。

窗體事件:

名 稱

描 述

Visibility

當組件變為可視狀態時觸發。

Unmap

當組件由顯示狀態變為隱藏狀態時觸發。

Map

當組件由隱藏狀態變為顯示狀態時觸發。

Expose

當組件從原本被其他組件遮蓋的狀態中暴露出來時觸發。

FocusIn

組件獲得焦點時觸發。

FocusOut

組件失去焦點時觸發。

Circulate

當窗體由于系統協議要求在堆棧中置頂或壓底時觸發,Tk中忽略此細節。

Colormap

當窗體的顏色或外貌改變時觸發,Tk中忽略此細節。

Gravity

Tk中忽略此細節。

Reparent

Tk中忽略此細節。

Configure

當改變組件大小時觸發。例如托拽窗體邊緣。

Property

當窗體的屬性被刪除或改變時觸發,屬于Tk的核心事件。不于窗體相關聯。

Destroy

當組件被銷毀時觸發。

Activate

與組件選項中的state項有關,表示組件由不可用轉為可用。例如按鈕由disabled(灰色)轉為enabled。

Deactivate

與組件選項中的state項有關,表示組件由可用轉為不可用。例如按鈕由enabled轉為disabled(灰色)。

事件前綴:

名 稱

描 述

Alt

當Alt鍵按下

Any

任何按鍵按下,例如

Control

Control鍵按下

Double

兩個事件在短時間內發生,例如雙擊鼠標左鍵

Lock

當Caps Lock鍵按下

Shift

當Shift鍵按下

Triple

類似于Double,三個事件短時間內發生。

你可以短格式表示事件,例如:<1>等同于、等同于

對于大多數的單字符按鍵,你還可以忽略“<>”符號。但是空格鍵和尖括號鍵不能這樣做(正確的表示分別為、)

按鍵名:

通用格式中的detail部分描述的是KeyPress事件和KeyRelease事件類型中特指的按鍵。下表描述了采用若干種不同的方式來命名按鍵。

.keysym列用字符串命名了按鍵,它可以從Event事件對象中的keysym屬性中獲得。

.keycode列用按鍵碼命名了按鍵,但是它不能反映事件前綴:Alt、Control、Shift、Lock,并且它不區分大小寫寫按鍵,即輸入a和A是相同的鍵碼。

.keysym_num列用數字代碼命名了按鍵。

Key列描述了鍵盤上的按鍵名,方便一一對應。

列表以美式101鍵盤為例:

.keysym

.keycode

.keysym_num

Key

Alt_L

64

65513

左手邊的Alt鍵

Alt_R

113

65514

右手邊的Alt鍵

BackSpace

22

65288

BackSpace

Cancel

110

65387

Pause Break

總結

以上是生活随笔為你收集整理的python函数调用键盘热键_Tkinter对键盘和鼠标事件的处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。