KeyNavigation
ImportStatement: import QtQuick 2.2
Properties
backtab :Item
down : Item
left : Item
priority :enumeration
right : Item
tab : Item
up : Item
DetailedDescription
用户界面一般允许箭头按键的使用,以此来在焦点组件之间导航。KeyNavigation关联属性提供了方便的方式实现这种行为。如当箭头或tab键被按下时,指定组件获得焦点。
下面的例子为2x2的栅格提供导航:
importQtQuick 2.0
Grid {
width: 100; height: 100
columns: 2
Rectangle {
id: topLeft
width: 50; height: 50
color: focus ? "red" :"lightgray"
focus: true
KeyNavigation.right: topRight
KeyNavigation.down: bottomLeft
}
Rectangle {
id: topRight
width: 50; height: 50
color: focus ? "red" :"lightgray"
KeyNavigation.left: topLeft
KeyNavigation.down: bottomRight
}
Rectangle {
id: bottomLeft
width: 50; height: 50
color: focus ? "red" :"lightgray"
KeyNavigation.right: bottomRight
KeyNavigation.up: topLeft
}
Rectangle {
id: bottomRight
width: 50; height: 50
color: focus ? "red" :"lightgray"
KeyNavigation.left: bottomLeft
KeyNavigation.up: topRight
}
}
通过设置focus为真,左上角组件初始化接受焦点。当按键被按下,焦点将移动到响应的组件。箭头按键被定义在KeyNavigation的left、right、up和down属性中。
注意,如果KeyNavigation关联属性接受箭头或tab按键的按下和释放事件请求,则时间被接收,不会继续传播。
默认情况下,KeyNavigation在属性关联组件后接受按键事件。如果组件接收按键事件,KeyNavigation关联属性将不接受按键的任何事件。设置priority属性为
KeyNavigation.BeforeItem允许按键在组件之前被用于KeyNavigation,而不是组件之后。
如果焦点切换的组件没有设置enabled或visible,将企图滑过这个组件并聚焦到下一个。一个组件的链用同样的KeyNavigation处理是可能的。如果一行的多个组件不是enabled或visible,它们也将被滑过。
KeyNavigation隐式的设置其它方向能返回焦点到组件。因此我们设置左到另一个组件,右键将被另一个组件的KeyNavigation设置成返回这个组件。尽管如此,如果哪个组件的KeyNavigation显示的设置右键,前面的隐式将不会发生。这意味着上面的例子能被写成不为任何组件指定KeyNavigation.right或KeyNavigation.down的方式。
PropertyDocumentation
backtab :Item
当Tab或Shift+Tab键被按下时,组件分配焦点到本属性的指定组件。
down : Item
当左、右、上或下光标键被按下时,组件分配焦点到本属性的指定组件。
left : Item
当左、右、上或下光标键被按下时,组件分配焦点到本属性的指定组件。
priority :enumeration
在关联的组件拥有按键处理时,按键在组件之前还是之后被处理。
KeyNavigation.BeforeItem- 在组件按键处理之前处理键盘事件。如果事件被KeyNavigation处理,它将被接收,不会传递到组件。
KeyNavigation.AfterItem(default) - 在组件按键处理之后处理键盘事件。如果组件接收按键事件,它将不会被关联的KeyNavigation处理。
right : Item
当左、右、上或下光标键被按下时,组件分配焦点到本属性的指定组件。
tab : Item
当Tab或Shift+Tab键被按下时,组件分配焦点到本属性的指定组件。
up : Item
当左、右、上或下光标键被按下时,组件分配焦点到本属性的指定组件。