【发布时间】:2021-03-11 01:53:12
【问题描述】:
我正在使用gtk-rs 并希望能够检测到何时按下任何键。
从一些在线搜索来看,在 C 中执行此操作的方法似乎是使用gtk_widget_add_events,然后使用g_signal_connect。 This answer 有很好的解释。
在 Rust 中,我可以调用 Widget::add_events。我还找到了g_signal_connect_* 的几个定义。但是,这些函数是 unsafe,未记录在案,并且似乎将 C 类型作为参数。
我的问题是:
- 为了使用
gobject_sys::g_signal_connect_closure,如何创建GObject和GClosure。在锈? rust 结构和闭包可以转换成那个吗? - 是否有更好、更惯用的方法来监听关键事件?我很难相信做这样一个基本的事情需要这样一个深奥的界面。我已经看到对特定键盘快捷键或键盘加速组的一些支持,但我无法找到任何文档或示例来监听按键事件。
【问题讨论】:
-
但是,这些功能是不安全的 我想知道,
ùnsafe对你来说意味着什么?