KeyEvent QML 类型

提供有关按键事件的信息。 更多信息...

导入声明import QtQuick

属性

方法

  • bool matches(StandardKey matchKey)

详细描述

例如,以下更改了当按下 Enter 键时项的状态属性

Item {
    focus: true
    Keys.onPressed: (event)=> { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; }
}

属性说明

accepted : bool

accepted 设置为 true 可以防止按键事件传播到项的父级。

通常,如果项对按键事件进行操作,则应接受它,以确保祖先项不会对同一事件做出响应。


count : int [只读]

此属性存储涉及此事件的按键数量。如果 KeyEvent::text 为空,则这仅仅是字符串的长度。


isAutoRepeat : bool [只读]

此属性存储是否此事件来自自动重复键。


key : int [只读]

此属性存储按下的或释放的键的代码。

有关键盘代码列表,请参阅 Qt.Key。这些代码与底层窗口系统无关。请注意,此函数不能区分大写和非大写字母;请使用 text 属性来实现此目的。

值为 0 或 Qt.Key_Unknown 表示事件不是已知按键的结果;例如,它可能是组合序列、键盘宏或由于按键事件压缩的结果。


modifiers : int [只读]

此属性存储事件发生前立即存在的键盘修饰符标志。

它包含数字值的位组合(与Qt::KeyboardModifier中的相同)

常量说明
Qt.NoModifier没有按任何修饰键。
Qt.ShiftModifier按下了键盘上的Shift键。
Qt.ControlModifier按下了键盘上的Ctrl键。
Qt.AltModifier按下了键盘上的Alt键。
Qt.MetaModifier按下了键盘上的Meta键。
Qt.KeypadModifier按下了数字键区按钮。
Qt.GroupSwitchModifier仅X11。按下了键盘上的Mode_switch键。

例如,要响应Shift键+Enter键的组合

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

nativeScanCode : quint32 [只读]

该属性包含按下的键的原始扫描码。它从QKeyEvent保持不变地传递。

另请参阅QKeyEvent::nativeScanCode().


text : string [只读]

该属性包含由键生成的Unicode文本。返回的文本可以是空字符串,在这种情况下修饰键,如Shift、Control、Alt和Meta,被按下或释放。在这些情况下,key将包含一个有效的值


方法文档

bool matches(StandardKey matchKey)

如果键事件与给定的标准matchKey匹配,则返回true;否则返回false

Item {
    focus: true
    Keys.onPressed: (event)=> {
        if (event.matches(StandardKey.Undo))
            myModel.undo();
        else if (event.matches(StandardKey.Redo))
            myModel.redo();
    }
}

另请参阅QKeySequence::StandardKey.


© 2024 The Qt Company Ltd. 所包含的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款授予的。Qt及其相关标志是芬兰The Qt Company Ltd.以及在全世界其他国家的商标。所有其他商标都是其各自所有者的财产。