2012-02-05 74 views
2

ALL, 在GTK +中有一個名爲GtkComboBox的小部件。我不知道實現細節,但在Windows上它由2個小部件組成:文本控制和列表控制。文本控件右側還有一個小按鈕。如果你點擊那個按鈕,彈出列表控件。如何在GtkComboBox中檢測鼠標點擊?

我的問題是:如何檢測鼠標點擊GtkComboBox中的按鈕?這樣的點擊甚至會發出可以被捕獲的信號,或者它只是將彈出信號發送到GtkComboBox小部件並吃鼠標點擊?

順便說一句,它是GTK +中的複合構件嗎?

任何語言的例子都會很有幫助。

謝謝。

+0

「在Windows上」是GTK +的完整紅鯡魚,因爲它不適用於任何平臺特定的行爲/小部件。你看到的是你在任何平臺上得到的。 (這經常被視爲一個缺點,但作爲程序員,我非常喜歡它。)另外,如果設置得當,'ComboBox'只有一個文本控件;比如,我的一個人都沒有。 – 2016-04-06 20:49:05

回答

1

GtkComboBox實際上確實「吃掉了鼠標點擊」,我認爲在不修改或繼承GtkComboBox小部件的情況下獲得您正在查找的行爲會非常棘手。我不會依賴GtkComboBox作爲一個複合構件 - 這看起來像是一個可能改變的實現細節。

如果你真的想捕獲組合框上的鼠標點擊,似乎你在上游划槳 - 畢竟,用戶有其他方式可以使用該組件(例如鍵盤)。 GtkComboBox在選擇發生變化時發出一個changed信號 - 您可以在應用程序中使用它嗎?

+0

是的,我試圖發送一封電子郵件,但沒有人回覆。 :(無論如何,我不想試圖依賴於它的複合,它只是順便說一句,事情是我沒有試圖抓住鼠標點擊文本區域 - 只在下拉按鈕。因此,從我的理解,這只是GTK +是如何工作的,你可以在文本控件上點擊鼠標,並且不能在下拉箭頭中輸入「popdown/popup」信號。 – Igor 2012-02-06 03:05:04