/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page qtquick-input-topic.html \title Important Concepts In Qt Quick - User Input \brief Overview of user input concepts Being able to respond to user-input is a fundamental part of user-interface design. Depending on the use-case that an application solves, and the form-factor of the device that the application runs on, the best way to receive user-input may be different. \section1 Touch Allowing users to physically touch a screen to interact with an application is a popular user-interface paradigm on portable devices like smartphones and tablets. Qt Quick was designed specifically with touch-driven user-interfaces in mind, and thus touch events are supported in various visual object types, from \l{Flickable} lists to the generic \l{MultiPointTouchArea} type, as well as in the \l{MouseArea} type (which will be documented thoroughly in a proceeding section). \section1 Mouse Mouse input is another important user input for user interfaces. Detecting and reacting to clicks and presses according to the mouse cursor position is a fundamental concept in user-interface design. Qt Quick provides the MouseArea visual object type which automatically receives mouse events (including clicks and wheel events) which allows developers to create custom user-interface objects to handle mouse input. Please see the documentation about \l{qtquick-input-mouseevents.html} {mouse events in Qt Quick} for more information on the topic. \section1 Keyboard Input and Keyboard Focus Supporting input from a keyboard is a vital component of the user interface of many applications. Any visual item can receive keyboard input through the \l Keys attached type. Additionally, the issue of \e {keyboard focus} arises when multiple items are required to receive key events, as these events must be passed to the correct item. See the documentation about \l{Keyboard focus in Qt Quick} for more information on this topic. Qt Quick also provides visual text items which automatically receive keyboard events and key-presses, and displays the appropriate text. See the documentation about \l{qtquick-input-textinput.html}{text input} for in-depth information on the topic. \section1 Device Motion Gestures Detecting device gestures with an accelerometer, or through camera-based gesture recognition, can allow users to interact with an application without requiring their full and undevided attention. It can also provide a more interactive and engaging experience. Qt Quick itself does not offer first-class support for physical device motion gestures; however, the \l{Qt Sensors} module provides QML types with support for such gestures. See the \l{Qt Sensors} module documentation for more information on the topic. */