Qt Quick Controls provides QML types for creating user interfaces. These QML types work in conjunction with Qt Quick and Qt Quick Layouts .
Qt Quick Controls QML types can be imported into your application using the following import statement in your .qml file:
import QtQuick.Controls
Abstract base type providing functionality common to buttons | |
抽象用户界面动作 | |
把动作分组在一起 | |
Styled top-level window with support for a header and footer | |
Indicates background activity, for example, while content is being loaded | |
Push-button that can be clicked to perform a command or answer a question | |
Mutually-exclusive group of checkable buttons | |
A calendar namespace | |
A calendar model | |
Check button that can be toggled on or off | |
Item delegate with a check indicator that can be toggled on or off | |
Combined button and popup list for selecting options | |
Abstract base type providing functionality common to containers | |
Abstract base type providing functionality common to all controls | |
A row of names for the days in a week | |
Check button that triggers when held down long enough | |
Circular dial that is rotated to set a value | |
Popup dialog with standard buttons and a title, used for short-term interaction with the user | |
A button box used in dialogs | |
Side panel that can be opened and closed using a swipe gesture | |
Visual frame for a logical group of controls | |
Visual frame and title for a logical group of controls | |
Provides a horizontal header view to accompany a TableView | |
Basic item delegate that can be used in various views and controls | |
Styled text label with inherited font | |
Popup that can be used as a context menu or popup menu | |
Provides a window menu bar | |
Presents a drop-down menu within a MenuBar | |
Presents an item within a Menu | |
Separates a group of items in a menu from adjacent items | |
A grid of days for a calendar month | |
A window overlay for popups | |
Styled page control with support for a header and footer | |
Indicates the currently active page | |
Provides a background matching with the application style and theme | |
Base type of popup-like user interface controls | |
Indicates the progress of an operation | |
Exclusive radio button that can be toggled on or off | |
Exclusive item delegate with a radio indicator that can be toggled on or off | |
Used to select a range of values by sliding two handles along a track | |
A push-button control with rounded corners that can be clicked by the user | |
Vertical or horizontal interactive scroll bar | |
Vertical or horizontal non-interactive scroll indicator | |
可卷动视图 | |
Used to select table cells inside a TableView | |
Used to select a value by sliding a handle along a track | |
Allows the user to select from a set of preset values | |
Provides attached properties for SplitView handles | |
Lays out items with a draggable splitter between each item | |
Provides a stack-based navigation model | |
Swipable item delegate | |
Enables the user to navigate pages by swiping sideways | |
Button that can be toggled on or off | |
Item delegate with a switch indicator that can be toggled on or off | |
Allows the user to switch between different views or subtasks | |
Button with a look suitable for a TabBar | |
多行文本输入区域 | |
单行文本输入字段 | |
Container for context-sensitive controls | |
Button with a look suitable for a ToolBar | |
Separates a group of items in a toolbar from adjacent items | |
Provides tool tips for any control | |
A delegate that can be assigned to a TreeView | |
Spinnable wheel of items that can be selected | |
Offers a vertical header view to accompany a TableView | |
A column of week numbers |
As mentioned in Qt Quick Templates 2 QML 类型 , each type in Qt Quick Controls is backed by a C++ "template" type. These types are non-visual implementations of controls' logic and behavior .
例如, Menu type's API and behavior is defined by the C++ type in Qt Quick Templates. Each style that wants to provide a Menu must have a Menu.qml available, and the root item in that file must be the Menu from Qt Quick Templates. When you import QtQuick .Controls and create a Menu in QML, the type you get is actually the QML Menu defined by the style's Menu.qml.
In order to use a control as the type in a property declaration, you should use the corresponding type from Qt Quick Templates. For example, suppose you had a
PopupOpener
component, which was a Button that opened a Popup:
// PopupButton.qml import QtQuick.Controls Button { required property Popup popup onClicked: popup.open() } // main.qml PopupButton { popup: saveChangesDialog } Dialog { id: saveChangesDialog // ... }
Running this code will result in an error:
Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE
This is because of the inheritance hierarchy:
Popup (C++ type in QtQuick.Templates) │ └── Popup (QML type in QtQuick.Controls) └── Dialog (C++ type in QtQuick.Templates) └── Dialog (QML type in QtQuick.Controls)
Dialog from
QtQuick.Controls
does not derive from the Popup from
QtQuick.Controls
, but from
QtQuick.Templates
.
Instead, use the Popup from Qt Quick Templates as the property type:
// PopupButton.qml import QtQuick.Controls import QtQuick.Templates as T Button { required property T.Popup popup onClicked: popup.open() }
有关 Qt Quick Controls 模块的更多信息,见 Qt Quick Controls 模块文档编制。