在 GTK+ 3 中将多个键盘快捷键绑定到一个操作的最佳方法是什么?
这几天我一直在寻找这个问题的答案,但一无所获。该函数gtk_accelerator_parse
不支持逗号分隔的快捷方式。将多个<accelerator>
标签放在.ui
具有相同action
属性和不同key
属性的文件中也不起作用。
我不想编写一个自定义按键处理程序,这样我就可以为一个操作有两个快捷方式,但这真的是唯一的方法吗?
在 GTK+ 3 中将多个键盘快捷键绑定到一个操作的最佳方法是什么?
这几天我一直在寻找这个问题的答案,但一无所获。该函数gtk_accelerator_parse
不支持逗号分隔的快捷方式。将多个<accelerator>
标签放在.ui
具有相同action
属性和不同key
属性的文件中也不起作用。
我不想编写一个自定义按键处理程序,这样我就可以为一个操作有两个快捷方式,但这真的是唯一的方法吗?
自 GTK 版本 3.12(于 2014-03-25 发布)以来,有一种称为新方法的方法gtk_application_set_accels_for_action()
应该会有所帮助。
我找到了一种方法,但它真的很可怕。使用gtk_accel_group_connect
我可以为我自己的功能添加额外的加速器,然后可以根据按下的键和任何修饰符触发所需的操作。然而,这感觉就像是一个 hack,因为我基本上是在创建自己的加速器到动作地图,而不是使用 GTK。
如果有人知道,我想知道一种更好的方法。