Tkinter 鼠標鍵盤事件(一)

一: 鼠標事件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上運行成功

相關文章
相關標籤/搜索