1.調用規則:窗體對象.bind(事件類型,回調函數)
2.<Button-1>表示鼠標左鍵單擊,其中的1換成3表示右鍵被單擊,為2的時候表示鼠標中鍵
t=Label(root, text='標簽')
t.bind(<Button-1>, 函數名) # 鼠標左鍵點擊時調用函數
例:
1 from tkinter import * 2 tk=Tk()#父窗口類實例 3 tk.title("bind用法實例")#窗口標題 4 5 def LoveChina(event):#定義回調函數 6 x1=Label(tk,text='我愛你中國!',background='pink') 7 x1.pack() 8 x2=Button(tk,text='單擊左鍵試試')#定義一個按鈕 9 x2.bind('<Button-1>',LoveChina)#單擊鼠標左鍵,綁定LoveChina()函數 10 x2.pack() 11 12 tk.mainloop()
運行結果如下:
3.<KeyPress-A>表示A鍵被按下,其中的A可以換成其他的鍵位
4.<Control-V>表示按下的是Ctrl和V鍵,V可以換成其他鍵位
5.<F1>表示按下的是F1鍵,對於Fn系列的,都可以隨便換
6.unbind()事件
unbind([type],[data],Handler) 是 bind()的反向操作,從每一個匹配的元素中刪除綁定的事件。如果沒有參數,則刪除所有綁定的事件。你可以將你用bind()注冊的自定義事件取消綁 定。如果提供了事件類型作為參數,則只刪除該類型的綁定事件。如果把在綁定時傳遞的處理函數作為第二個參數,則只有這個特定的事件處理函數會被刪除。
其中bind函數是定義在Misc類里面的,也就是說,這個bind可以被絕大多數組件類所使用
注意:若使用bind,則布局必須寫在bind后無法會報AttributeError錯
8 x2=Button(tk,text='單擊左鍵試試')#定義一個按鈕
9 x2.bind('<Button-1>',LoveChina)#單擊鼠標左鍵,綁定LoveChina()函數
10 x2.pack()
關於bind函數,還有兩個版本:
1.可以在全程序級別的綁定,使用bind_all,它的參數類型和bind一樣,它通常用於全局的快捷鍵,比如F1通常是用來打開幫助文檔
2.還可以綁定某些類別,使用bind_class,它接受三個參數,第一個參數是類名,第二個參數是事件類型,第三個參數是相應的操作,比如w.bind_class(“Entry”,“<Control-V>”,my_paste)。它就是綁定了所有的所有的輸入框的Ctrl+V表示粘貼