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 模块文档编制。