2011-12-15 93 views
9

我試圖捕獲GtkEntry中按下時輸入鍵。最讓我找到建議連接到activate信號的資源,但documentation for GtkEntry國家(重點煤礦)的:如何在GtkEntry中捕獲回車鍵

應用程序不應該連接到它,但可能與 g_signal_emit_by_name(),如果他們需要發出它以編程方式控制激活 。

我很好奇這背後的理由,也是普遍接受的選擇。我知道我可以連接到key-press-event信號並檢查關鍵代碼,但我想知道是否有更優雅的解決方案。

+0

我很清楚這些文檔說的是什麼,但是我一直使用,到目前爲止沒有麻煩出現過。如果我是你,我會使用,並通過測試發現,如果不工作。儘管您可以檢查GtkEntry源代碼背後的代碼,以查看它是否不符合您的需求。 – erick2red 2011-12-15 15:19:34

回答

9

這是一個鍵控信號。這意味着GTK的設置是這樣的,當您按在條目中輸入時,信號就會發出。如果你想模擬輸入,它也可以編程發射,所以不能保證信號實際上是按鍵的結果。

如果你想捕獲一個按鍵,那麼最好的方法是連接到key-press-event

這就是說,我不明白你爲什麼不能使用activate信號。大多數鍵控信號不應該連接到,但這似乎是有道理的。我認爲你應該要求澄清gtk-devel郵件列表或者在bugzilla.gnome.org上提出一個錯誤,說明這個信號的文檔應該被澄清。

+1

完成並完成。感謝您的答覆。 https://bugzilla.gnome.org/show_bug.cgi?id=666364 – 2011-12-16 14:33:48

2

針對激活信號所提到的文檔GtkEntry中:

應用程序不應該連接到它,但可以與 g_signal_emit_by_name(),如果他們需要控制激活 編程發射它。

...已被更改爲:當該信號被用作鍵綁定信號

,它也是通常 由應用程序用於截取條目的激活。

這發生在2012-06-11與承諾4a25bac0e7685000fff90a211db6ac60f6b74ab1。提交信息是:

更新文檔GtkEntry中用於激活::

刪除「你不可連接」 從這個信號消息。雖然它是一個鍵控信號,但從應用程序中使用它 是很好的,事實上,它是預期的。