如何將「單擊」事件附加到標籤上?我試過GtkEventBox,但沒有運氣。將雙擊事件附加到標籤
回答
連接到EventBox上的button-press-event
信號。
連接到按鈕事件信號,但直接在GtkLabel上。我會說你不需要這裏的事件箱,因爲GtkLable已經從GtkWidget繼承了這個信號。要使GtkLabel能夠接收這些事件,您需要先撥打gtk_widget_set_events或gtk_widget_add_events,並將靈敏度添加到GDK_BUTTON_PRESS_MASK事件中。
並非所有的GTK小部件都可以接收事件。 'GtkLabel'就是其中的一個,它需要被包裝在一個事件框中。請參閱PyGTK FAQ中的這個問題:http://faq.pygtk.org/index.py?query=eventbox&querytype=simple&req=search – ptomato 2011-04-29 08:56:33
然而,關於GDK掩碼的一點可能對其他窗口小部件有用。 – 2016-02-12 12:56:44
Gtk#區分小工具和「容器」。放置在Gtk#表單上的大多數小部件都不會接收鼠標點擊事件。爲了接收鼠標事件,你需要將控件放置一個特殊容器內 - 象事件盒:
添加事件盒containter到表單中。您可以將其放置在其他Widget之後,或者因爲它不可見,除非您專門選擇它(或更改其背景色)。
將您的標籤小部件放入此EventBox中。注意標籤將獲得EventBox的形狀和大小。
將「ButtonPressEvent」信號添加到「常用Widget信號」中。
如果您需要標識同時處理該事件的是被點擊的按鈕,在使用UINT值:args.Event.Button典型的「1」將是鼠標左鍵,「2」中心按鈕和'3'右邊的按鈕('2'也可以是左右鍵都被點擊的情況)。
看來你根本不需要EventBox:因爲問題是標籤沒有任何關聯的X11窗口,只需要給它一個set_has_window(True)
!對我來說,以下工作:
self.label = Gtk.Label()
self.label.set_has_window(True)
self.label.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
self.label.connect("button-press-event", self.click_label)
的documentation說,它應該只用於實現部件 - 但是,嘿,它的工作原理。誰在乎「應該」?
- 1. 如何將雙擊鼠標事件添加到列表框?
- 2. 使用jquery將onClick事件附加到錨標籤?
- 3. 附加到標籤
- 4. 將事件附加到javafx GridPane事件
- 5. 是否可以將點擊事件添加到畫布標籤?
- 6. 將元素附加到另一個元素後的Jquery雙擊事件
- 7. 在JavaScript中添加onclick事件到附加div標籤
- 8. 附加點擊事件div
- 9. 將佈局附加到標籤 - Android
- 10. 將類標籤附加到Keras模型
- 11. 將JavaScript附加到body標籤
- 12. 如何將clicklistener附加到Vaadin標籤?
- 13. 將文本附加到標籤tkinter
- 14. JQuery將div.class附加到它的標籤
- 15. 將字符串附加到標籤
- 16. 雙擊鼠標單擊事件RadioButtonList
- 17. 如何將某個類添加/刪除到任何標籤時附加事件?
- 18. 雙擊事件
- 19. 雙擊事件
- 20. 將事件附加到控件
- 21. 標籤上單擊事件
- 22. LWUIT標籤點擊事件?
- 23. 加錨標記點擊事件不會向其添加活動類。 (附加標籤由另一個錨標籤的點擊事件生成)
- 24. 附加標籤
- 25. 如何將雙擊事件添加到Extjs的div中
- 26. XUL將事件附加到錨點附加到javascript
- 27. 將答案(li標籤)附加到Questio(ul標籤)
- 28. 將標籤附加到Kendo標籤條的左邊
- 29. 如何使用SWT將雙擊事件監聽器添加到托盤圖標?
- 30. 將事件附加到動態創建的按鈕單擊
爲什麼按鈕按?線程創建者談論鼠標點擊,而不是按下按鈕 – fnc12 2015-04-06 13:51:07
哦,紐約賭注。它出現按鈕意味着鼠標按鈕。對不起 – fnc12 2015-04-06 13:52:39
在我的測試中,標籤專門顯示消費'button-press-event';我在使用其他小部件上的信號方面沒有問題; :\怪異。其他意見建議一個Gtk.EventBox是標籤所必需的。 – ThorSummoner 2016-02-12 07:32:43