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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM