GtkD开发中如何为MenuItem设置SHIFT+F6作为菜单快捷键
GtkD菜单项绑定SHIFT+F6快捷键实现方法
现有可运行实现
当前通过MenuItem构造函数直接传参的方式,已经成功实现了CTRL+SHIFT+R快捷键绑定,按下组合键即可正常触发pm.runFile()处理函数,对应代码如下:
MenuItem runFileItem = new MenuItem( (MenuItem mi) => pm.runFile(), "_Run file", "activate", true, accelGroup, 'r', ModifierType.CONTROL_MASK | ModifierType.SHIFT_MASK, AccelFlags.VISIBLE);
存在的问题
使用上述构造函数传参的方式,始终无法完成SHIFT+F6的快捷键绑定:
- 尝试调用
gdk.Keysyms模块中的GDK_F6按键常量,未找到正确传参方式 - 此前曾在GtkD官方论坛咨询该问题,未获得有效解答
可行解决方案
MenuItem构造函数的快捷键传参位仅支持普通可打印字符,F6这类功能键无法通过构造函数直接绑定,需要在实例化菜单项后,调用addAccelerator方法单独添加快捷键,可正常运行的代码如下:
MenuItem runFileItem = new MenuItem("_Run file", (MenuItem mi) => pm.runFile(), "activate"); runFileItem.addAccelerator("activate", accelGroup, GdkKeysyms.GDK_F6, ModifierType.SHIFT_MASK, AccelFlags.VISIBLE);
修改后按下SHIFT+F6即可正常触发菜单项的激活逻辑。
内容的提问来源于stack exchange,提问作者DejanLekic
相关产品推荐
相关产品推荐

