Qt Reference Documentation

QML KeyNavigation Element

The KeyNavigation attached property supports key navigation by arrow keys. More...

  • List of all members, including inherited members
  • Properties

    Detailed Description

    Key-based user interfaces commonly allow the use of arrow keys to navigate between focusable items. The KeyNavigation attached property enables this behavior by providing a convenient way to specify the item that should gain focus when an arrow or tab key is pressed.

    The following example provides key navigation for a 2x2 grid of items:

     import QtQuick 1.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
         }
     }

    The top-left item initially receives focus by setting focus to true. When an arrow key is pressed, the focus will move to the appropriate item, as defined by the value that has been set for the KeyNavigation left, right, up or down properties.

    Note that if a KeyNavigation attached property receives the key press and release events for a requested arrow or tab key, the event is accepted and does not propagate any further.

    By default, KeyNavigation receives key events after the item to which it is attached. If the item accepts the key event, the KeyNavigation attached property will not receive an event for that key. Setting the priority property to KeyNavigation.BeforeItem allows the event to be used for key navigation before the item, rather than after.

    See also Keys attached property.

    Property Documentation

    left : Item

    right : Item

    up : Item

    down : Item

    These properties hold the item to assign focus to when the left, right, up or down cursor keys are pressed.


    priority : enumeration

    This property determines whether the keys are processed before or after the attached item's own key handling.

    • KeyNavigation.BeforeItem - process the key events before normal item key processing. If the event is used for key navigation, it will be accepted and will not be passed on to the item.
    • KeyNavigation.AfterItem (default) - process the key events after normal item key handling. If the item accepts the key event it will not be handled by the KeyNavigation attached property handler.

    tab : Item

    backtab : Item

    These properties hold the item to assign focus to when the Tab key or Shift+Tab key combination (Backtab) are pressed.


    X

    Thank you for giving your feedback.

    Make sure it is related to this specific page. For more general bugs and requests, please use the Qt Bug Tracker.