如何在 QML 中查询键盘修饰符?

Posted

技术标签:

【中文标题】如何在 QML 中查询键盘修饰符?【英文标题】:How to query keyboard modifiers in QML? 【发布时间】:2016-02-10 20:36:07 【问题描述】:

Qt 通过QGuiApplication::keyboardModifiers() 提供此功能。 QML 方式是什么?

【问题讨论】:

【参考方案1】:

在 QML 中存在 KeyEvent(有关详细信息,请参阅 here),它有一个名为 property 的 modifers。 它包含可用修饰符的按位组合。

它遵循直接取自上述文档的示例:

Item 
    focus: true
    Keys.onPressed: 
        if ((event.key == Qt.Key_Enter) && (event.modifiers & Qt.ShiftModifier))
            doSomething();
    

可用修饰符的完整列表,请参考官方文档。

【讨论】:

没关系,但我想在事件处理程序之外查询缓存的修饰符。 哦,好的,知道了。那么,你有什么代替QGuiApplication::keyboardModifiers?同样的静态方法。将其从 C++ 层导出到 QML 层,仅此而已。为什么你不能这样做?

以上是关于如何在 QML 中查询键盘修饰符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# T-SQL 查询字符串中使用 % 修饰符?

如何在 qml 中捕捉从虚拟键盘按下的 Key_Cancel?

键盘事件、事件修饰符

vue--键盘修饰符以及自定义键盘修饰符

XCTest - 如何使用 Command 和 Shift 创建多个键修饰符标志?

vue事件修饰符和键盘事件