gtk-rs:如何监听键盘事件

问题描述

我正在使用 gtk-rs 并且希望能够检测到何时按下了任何键。

从网上的一些搜索来看,在 C 中这样做的方法似乎是先使用 gtk_widget_add_events,然后使用 g_signal_connectThis answer 有很好的解释。

在 Rust 中,我可以调用 Widget::add_events。我还找到了 g_signal_connect_* 的几个定义。但是,这些函数是 unsafe,未记录,并且似乎将 C 类型作为参数。

我的问题是:

  1. 为了使用 gobject_sys::g_signal_connect_closure,我该如何创建 GObjectGClosure。在 Rust 中? Rust 结构体和闭包可以转换成那样吗?
  2. 是否有更好、更惯用的方式来监听关键事件?我很难相信做这样一件基本的事情会需要这样一个深奥的界面。我已经看到了对特定键盘快捷键或键盘加速组的一些支持,但我找不到任何仅用于侦听按键事件的文档或示例。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)