1. 程式人生 > 實用技巧 >Python tkinter之控制元件方法bind的使用

Python tkinter之控制元件方法bind的使用

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表示貼上