KeyEvent
Import Statement: import QtQuick 2.2
Properties
accepted :bool
count : int
isAutoRepeat: bool
key : int
modifiers :int
nativeScanCode: quint32
text :string
Methods
boolmatches(StandardKey key)
DetailedDescription
例如当Enter按键被按下时,组件的状态属性被改变:
Item {
focus: true
Keys.onPressed: { if (event.key ==Qt.Key_Enter) state = 'ShowDetails'; }
}
PropertyDocumentation
accepted :bool
为真则按键事件被接收,不会传播给组件的父。一般来说,如果组件响应键盘事件,事件应该被接收,这样组件的祖先就不会响应相同的事件。
count : int
参与这次事件的按键的数目。如果KeyEvent::text不是空的,它是简单的字符串的长度。
isAutoRepeat: bool
事件是否来自自动重复键。
key : int
被按下或被释放的按键的编码。键盘编码的列表看Qt.Key。注意这个函数不区分字母的大小写。为了区分大小写,用text()函数(返回按键生成的Unicode编码的文本)。key为0或Qt.Key_Unknown意味着时间不是已知的按键的结果。例如,它可以是组合序列的结果,一个键盘宏或按键事件的压缩。
modifiers :int
事件发生之前存在的键盘修改标志,它是一个位的组合:
Qt.NoModifier- 没有修改键被按下。
Qt.ShiftModifier- Shift键被按下。
Qt.ControlModifier- Ctrl键被按下。
Qt.AltModifier- Alt键被按下。
Qt.MetaModifier- Meta键被按下。
Qt.KeypadModifier- 键盘按钮被按下。
For example,to react to a Shift key + Enter key combination:
例如,响应Shift键加Enter键的组合:
Item {
focus: true
Keys.onPressed: {
if ((event.key == Qt.Key_Enter)&& (event.modifiers & Qt.ShiftModifier))
doSomething();
}
}
nativeScanCode: quint32
这个属性包含本地的被按下的按键的扫描码。它来自于QKeyEvent。
text :string
按键生成的Unicode文本。当修改键,诸如Shift、Control、Alt和Meta键被按下或释放时,文本返回空字符。在这些情况下,key将包含有效值。
MethodDocumentation
boolmatches(StandardKey key)
如果按键事件和给的标准按键匹配,返回真,否则返回假。
Item {
focus: true
Keys.onPressed: {
if (event.matches(StandardKey.Undo))
myModel.undo();
else if (event.matches(StandardKey.Redo))
myModel.redo();
}
}