如何在GtkEntry中捕获Enter键按下

Sea*_*ght 13 gtk gtkentry gtk3

我想在Enter按下按键时捕获按键GtkEntry.我发现的大多数资源建议连接到activate信号,但GtkEntry文档说明(强调我的):

应用程序不应连接到它,但如果需要以编程方式控制激活,则可以使用g_signal_emit_by_name()发出它.

我很好奇这背后的理由以及普遍接受的替代方案.我知道我可以连接到key-press-event信号并检查密钥代码,但我想知道是否有更优雅的解决方案.

pto*_*ato 10

这是一个键绑定信号.这意味着GTK已设置为当您按下Enter条目时,信号将被发出.如果你想模拟按下Enter,它也可以以编程方式发出,因此不能保证信号实际上是按键的结果.

如果您想捕获按键,那么最好的方法是连接到key-press-event.

也就是说,我不明白为什么你不能使用这个activate信号.大多数键绑定信号不应该连接,但这个似乎是有道理的.我想你应该在gtk-devel邮件列表上要求澄清,或者在bugzilla.gnome.org上提出一个错误,说明应该澄清这个信号的文档.