我正在使用QML和Qt Creator构建桌面应用程序,我目前正在研究键盘处理以及它如何与QML元素一起工作 . 我已经意识到桌面小部件缺少适当的QML替换 .
我目前的问题是,我希望为一些特定的QML组件分配一些全局键盘快捷键(比如为GUI上的按钮分配键盘快捷键),这些快捷键应该激活它们 . 我能管理的最好的是使用FocusScopes和Key Navigation能够通过键盘导航GUI,但这不是一回事 .
任何人都可以建议在这种情况下做什么? Qt 5有没有这样的功能?我在互联网上找不到任何相关信息 .
4 回答
回答我自己的问题,现在可以在Qt 5.1.1中实现快捷方式 . 使用QML
Action
项可以轻松地将快捷键绑定到Button
,ToolButtons
和MenuItem
等QtQuick
控件 . 例如:按Ctrl O将执行onTriggered部分中指定的操作 .
参考Qt Quick Controls Gallery example
您可以在C(Qt)中使用EventFilter在QML中完全使用快捷方式 .
您可以通过以下步骤完成:
所以假设你在这个按钮上调用一个函数点击这样的事件,
然后,您可以通过这种方式指定分配全局键盘快捷键 . 但是限制是全局QML元素(包含所有其他QML元素的父元素)应该具有焦点 . 防爆 . :
这不是你想要的,但它可能会有所帮助 .
从Qt 5.9开始,所需的行为甚至是included:
如果省略上下文,它将仅适用于当前活动的窗口,否则对于整个应用程序,请参阅documentation .