我試圖捕獲在GtkEntry
中按下時輸入鍵。最讓我找到建議連接到activate
信號的資源,但documentation for GtkEntry國家(重點煤礦)的:如何在GtkEntry中捕獲回車鍵
應用程序不應該連接到它,但可能與 g_signal_emit_by_name(),如果他們需要發出它以編程方式控制激活 。
我很好奇這背後的理由,也是普遍接受的選擇。我知道我可以連接到key-press-event
信號並檢查關鍵代碼,但我想知道是否有更優雅的解決方案。
我試圖捕獲在GtkEntry
中按下時輸入鍵。最讓我找到建議連接到activate
信號的資源,但documentation for GtkEntry國家(重點煤礦)的:如何在GtkEntry中捕獲回車鍵
應用程序不應該連接到它,但可能與 g_signal_emit_by_name(),如果他們需要發出它以編程方式控制激活 。
我很好奇這背後的理由,也是普遍接受的選擇。我知道我可以連接到key-press-event
信號並檢查關鍵代碼,但我想知道是否有更優雅的解決方案。
這是一個鍵控信號。這意味着GTK的設置是這樣的,當您按在條目中輸入時,信號就會發出。如果你想模擬按輸入,它也可以編程發射,所以不能保證信號實際上是按鍵的結果。
如果你想捕獲一個按鍵,那麼最好的方法是連接到key-press-event
。
這就是說,我不明白你爲什麼不能使用activate
信號。大多數鍵控信號不應該連接到,但這似乎是有道理的。我認爲你應該要求澄清gtk-devel郵件列表或者在bugzilla.gnome.org上提出一個錯誤,說明這個信號的文檔應該被澄清。
完成並完成。感謝您的答覆。 https://bugzilla.gnome.org/show_bug.cgi?id=666364 – 2011-12-16 14:33:48
針對激活信號所提到的文檔GtkEntry中:
應用程序不應該連接到它,但可以與 g_signal_emit_by_name(),如果他們需要控制激活 編程發射它。
...已被更改爲:當該信號被用作鍵綁定信號
,它也是通常 由應用程序用於截取條目的激活。
這發生在2012-06-11與承諾4a25bac0e7685000fff90a211db6ac60f6b74ab1。提交信息是:
更新文檔GtkEntry中用於激活::
刪除「你不可連接」 從這個信號消息。雖然它是一個鍵控信號,但從應用程序中使用它 是很好的,事實上,它是預期的。
我很清楚這些文檔說的是什麼,但是我一直使用,到目前爲止沒有麻煩出現過。如果我是你,我會使用,並通過測試發現,如果不工作。儘管您可以檢查GtkEntry源代碼背後的代碼,以查看它是否不符合您的需求。 – erick2red 2011-12-15 15:19:34