如何覆蓋Tkinter 文字小部件中的繼承綁定
將事件綁定到Tkinter 文字綁定到小部件時,您可能會遇到以下情況:自己的事件綁定優先於小部件的內建綁定。例如,您可能希望在觸發事件綁定函數時修改小部件中的文字。
開箱即用,會出現問題,因為您的事件綁定是在文字小部件的類別綁定之前調用的,負責將用戶輸入插入小部件中。
解決方案:操作綁定標籤
要解決此問題,我們可以修改綁定處理的順序操作與小部件關聯的「bindtags」。綁定標籤是分配給小部件的標籤,預設情況下,每個小部件都有一個與其名稱相對應的綁定標籤。小部件還有其他綁定標籤,例如它們的類別、根視窗路徑和一個名為「all」的特殊標籤。
收到事件時,Tkinter 依照以下順序處理綁定,從最具體到最不具體:widget、class、toplevel、全部。
選項 1:重新排序綁定標籤
覆蓋繼承綁定的一個選項是重新排列綁定標籤的順序。透過將小部件的綁定標籤移到類別綁定標籤之後,我們可以確保類別綁定在小部件綁定之前處理。
選項 2:引入新的綁定標籤
另一種方法是建立一個附加的綁定標籤,放置在類別綁定標籤之後。透過將事件綁定到這個新標籤,我們可以確保我們的綁定在類別綁定之後執行。
使用新綁定標籤的好處
重新排列綁定標籤可以影響所有小部件上的綁定,可能會幹擾那些依賴特定順序的綁定。透過引入新的綁定標籤,您可以在類別綁定之後選擇性地應用覆蓋的綁定,而其他綁定不受影響。
範例
提供的 Python 程式碼示範了三種不同的綁定標籤上面提到的配置。當您與條目小部件互動並按鍵時,您會注意到每個小部件的狀態標籤更新不同:
以上是如何覆蓋 Tkinter 文字小工具中的繼承綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!