我想綁定我的鼠標雙擊功能,現在只是在Tkinter列表框中打印當前選擇。要清除該功能,只應在用戶雙擊Tkinter列表框中的某個項目時打印。我應該使用什麼事件綁定?Tkinter綁定鼠標雙擊
回答
您可以綁定到<Double-Button-1>
:
widget.bind('<Double-Button-1>', handler)
還有<Button-1>
正常鼠標點擊和<Triple-Button-1>
三合爲一的鼠標點擊。
有關Tkinter中綁定的更多信息,請參閱Events and Bindings。
您必須認識到,所有小部件都有一個層次結構,這意味着對於您單擊的每個小部件而言,可能有多個綁定。如果您不覆蓋默認操作,則會從最低級別(如Listbox)開始調用每個層次結構的默認處理程序,並一直到Tk()或Toplevel()小部件。對你來說,既然你想點擊一個列表框項目只有當打印,您可以綁定到列表框控件,如下所示:
listboxWidget.bind('<Double-Button-1>', listboxWidget_leftclick_handler)
然後,當你進入def listboxWidget_leftclick_handler(event)
功能,你不必檢查event.widget值來查看它是否是您的Listbox小部件的名稱。但是你也可以在更高層次上檢查(將處理程序綁定到更高級別的小部件)並檢查event.widget以查看單擊了哪個小部件。
另請注意,防止觸發事件處理程序的整個層次結構的唯一方法是使用自定義處理程序中的return 'break'
,但如果稍後的處理程序損壞您的自定義處理程序所做的操作,通常只需執行此操作。有關默認處理程序**
,我離開了就是有也是大多數事件「默認」處理程序中的另一部分
**額外的信息。如果綁定自己的處理程序,那麼一旦完成,如果您沒有return 'break'
,則將接下來調用默認處理程序。
例如,假設您想將自己的輸入框設爲密碼輸入。默認情況下,當Entry具有焦點時(這意味着它從鍵盤獲得輸入)鍵入字母數字字符時,字符將出現在Entry中。您可以綁定
myEntry.bind('<KeyPress>', passworder)
其中passworder(事件)是抓住事件牽着你輸入的字符,然後輸出一個星號進輸入,而不是自定義處理程序。但是,如果您在處理程序的末尾沒有使用return "break"
,則Entry小部件仍然會看到您不想顯示的字符,因爲一旦您的處理程序完成插入星號,默認處理程序將簡單地插入類型化的字符(就像通常那樣)。但是,如果您執行return 'break'
,則不會調用默認處理程序,並且鍵入的字符不會出現在Entry中。
- 1. Tkinter:綁定其他鼠標按鈕
- 2. 雙擊激活綁定鼠標按下/上
- 3. 獲取鼠標雙擊pyHook
- 4. 鼠標雙擊DataGrid行
- 5. 鼠標雙擊火災只
- 6. 用鼠標點擊更新tkinter標籤
- 7. 區分鼠標雙擊和鼠標點擊wpf
- 8. 通話雙擊鼠標單擊
- 9. 雙擊鼠標單擊事件RadioButtonList
- 10. Tkinter將鼠標點擊到框架
- 11. 攔截單擊或雙擊鼠標 - 僅執行雙擊代碼雙擊
- 12. Tkinter綁定一個功能鼠標左鍵不起作用
- 13. 雙擊鍵盤綁定Java
- 14. 模擬鼠標雙擊不起作用
- 15. GWT Celllist鼠標事件雙擊示例?
- 16. Javascript按鈕,防止鼠標雙擊
- 17. 鼠標雙擊工作不太好
- 18. TreeView,Overiding雙擊鼠標事件WPF
- 19. 如何防止雙擊鼠標(一次)
- 20. 手柄鼠標右鍵雙擊形狀
- 21. SFML - pollEvent雙鼠標點擊運行
- 22. 雙擊AS3中的鼠標事件?
- 23. Qt雙擊檢查左鍵鼠標
- 24. TKinter按鈕避免雙擊
- 25. jQuery綁定鼠標滾輪
- 26. 鼠標綁定在WPF TreeView
- 27. 如何綁定鼠標
- 28. XtraReports雙標籤綁定
- 29. 問題與定時器使用鼠標雙擊
- 30. Tkinter標籤沒有收到鼠標點擊