如何捕捉回车键在GtkEntry



我试图捕获输入键,当它在GtkEntry中按下时。我找到的大多数资源都建议连接到activate信号,但GtkEntry的文档状态(重点是我的):

应用程序不应该连接到它,但可以发出它G_signal_emit_by_name(),如果它们需要控制激活以编程方式。

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

这是一个键绑定信号。这意味着设置了GTK,这样当您按在条目中输入时,就会发出信号。如果您希望模拟Enter,也可以通过编程方式发出该信号,因此无法保证该信号实际上是按键的结果。

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

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

上述激活信号的GtkEntry文档:

应用程序不应该连接到它,但可以发出它G_signal_emit_by_name(),如果它们需要控制激活以编程方式。

…已更改为:

当这个信号被用作键绑定信号时,它也通常是应用程序用来拦截条目的激活。

这发生在2012-06-11,commit 4a25bac0e7685000fff90a211db6ac60f6b74ab1。提交消息为:

更新GtkEntry::activate

删除"您不得连接"来自这个信号的消息。当它是键绑定信号时,使用它

相关内容

  • 没有找到相关文章

最新更新