Qt Quick Controls QML Types

Qt Quick Controls bietet QML-Typen für die Erstellung von Benutzeroberflächen. Diese QML-Typen arbeiten in Verbindung mit Qt Quick und Qt Quick Layouts.

Qt Quick Controls QML-Typen können in Ihre Anwendung importiert werden, indem Sie die folgende Import-Anweisung in Ihrer .qml-Datei verwenden:

import QtQuick.Controls

QML-Typen

AbstractButton

Abstrakter Basistyp mit gemeinsamer Funktionalität für Schaltflächen

Action

Abstrakte Aktion der Benutzeroberfläche

ActionGroup

Gruppiert Aktionen zusammen

ApplicationWindow

Gestaltetes Fenster der obersten Ebene mit Unterstützung für Kopf- und Fußzeile

BusyIndicator

Zeigt Hintergrundaktivitäten an, z. B. während Inhalte geladen werden

Button

Druckknopf, der angeklickt werden kann, um einen Befehl auszuführen oder eine Frage zu beantworten

ButtonGroup

Eine sich gegenseitig ausschließende Gruppe von anklickbaren Schaltflächen

Calendar

Ein Kalender-Namensraum

CalendarModel

Ein Kalendermodell

CheckBox

Prüfschaltfläche, die ein- oder ausgeschaltet werden kann

CheckDelegate

Item-Delegat mit einem ein- oder ausschaltbaren Prüfzeichen

ComboBox

Kombinierte Schaltfläche und Popup-Liste zur Auswahl von Optionen

Container

Abstrakter Basistyp mit gemeinsamer Funktionalität für Container

Control

Abstrakter Basistyp mit gemeinsamer Funktionalität für alle Steuerelemente

DayOfWeekRow

Eine Reihe von Namen für die Tage einer Woche

DelayButton

Schaltfläche zum Ankreuzen, die ausgelöst wird, wenn man sie lange genug gedrückt hält

Dial

Kreisförmige Skala, die gedreht wird, um einen Wert einzustellen

Dialog

Popup-Dialog mit Standardschaltflächen und einem Titel, der für kurzfristige Interaktionen mit dem Benutzer verwendet wird

DialogButtonBox

Ein Schaltflächenfeld, das in Dialogen verwendet wird

Drawer

Seitenleiste, die mit einer Wischgeste geöffnet und geschlossen werden kann

Frame

Visueller Rahmen für eine logische Gruppe von Steuerelementen

GroupBox

Visueller Rahmen und Titel für eine logische Gruppe von Steuerelementen

HorizontalHeaderView

Bietet eine horizontale Kopfansicht, die eine TableView begleitet

ItemDelegate

Basic Item Delegate, der in verschiedenen Ansichten und Steuerelementen verwendet werden kann

Label

Gestaltete Textbeschriftung mit geerbter Schriftart

Menu

Popup, das als Kontextmenü oder Popup-Menü verwendet werden kann

MenuBar

Bietet eine Fenster-Menüleiste

MenuBarItem

Stellt ein Dropdown-Menü in einer MenuBar dar

MenuItem

Stellt ein Element innerhalb eines Menüs dar

MenuSeparator

Trennt eine Gruppe von Elementen in einem Menü von benachbarten Elementen

MonthGrid

Ein Raster von Tagen für einen Kalendermonat

Overlay

Ein Fenster-Overlay für Popups

Page

Gestaltete Seitensteuerung mit Unterstützung für eine Kopf- und Fußzeile

PageIndicator

Zeigt die derzeit aktive Seite an

Pane

Bietet einen Hintergrund, der zum Stil und Thema der Anwendung passt

Popup

Basistyp von Popup-ähnlichen Bedienelementen der Benutzeroberfläche

ProgressBar

Zeigt den Fortschritt eines Vorgangs an

RadioButton

Exklusive Optionsschaltfläche, die ein- oder ausgeschaltet werden kann

RadioDelegate

Exklusiver Elementdelegierter mit einem Optionsfeld, das ein- oder ausgeschaltet werden kann

RangeSlider

Dient zur Auswahl eines Wertebereichs durch Verschieben zweier Griffe entlang einer Spur

RoundButton

Ein Drucktasten-Steuerelement mit abgerundeten Ecken, das vom Benutzer angeklickt werden kann

ScrollBar

Vertikale oder horizontale interaktive Bildlaufleiste

ScrollIndicator

Vertikale oder horizontale nicht-interaktive Bildlaufleiste

ScrollView

Bildlauffähige Ansicht

SelectionRectangle

Wird verwendet, um Tabellenzellen innerhalb eines TableViews auszuwählen

Slider

Dient zur Auswahl eines Wertes durch Verschieben eines Griffs entlang einer Spur

SpinBox

Ermöglicht es dem Benutzer, aus einer Reihe von voreingestellten Werten auszuwählen

SplitHandle

Bietet angehängte Eigenschaften für SplitView Griffe

SplitView

Legt die Elemente mit einem verschiebbaren Splitter zwischen den einzelnen Elementen aus

StackView

Bietet ein stapelbasiertes Navigationsmodell

SwipeDelegate

Swipable Item Delegate

SwipeView

Ermöglicht es dem Benutzer, durch seitliches Wischen durch die Seiten zu navigieren

Switch

Schaltfläche, die ein- oder ausgeschaltet werden kann

SwitchDelegate

Elementdelegat mit einer Schaltanzeige, die ein- oder ausgeschaltet werden kann

TabBar

Ermöglicht es dem Benutzer, zwischen verschiedenen Ansichten oder Unteraufgaben zu wechseln

TabButton

Schaltfläche mit einem für eine TabBar geeigneten Aussehen

TextArea

Mehrzeiliges Texteingabefeld

TextField

Einzeiliges Texteingabefeld

ToolBar

Container für kontextabhängige Steuerelemente

ToolButton

Schaltfläche mit einem für eine Symbolleiste geeigneten Aussehen

ToolSeparator

Trennt eine Gruppe von Elementen in einer Symbolleiste von benachbarten Elementen

ToolTip

Bietet Tooltips für beliebige Steuerelemente

TreeViewDelegate

Ein Delegat, der einem TreeView zugewiesen werden kann

Tumbler

Drehbares Rad mit Elementen, die ausgewählt werden können

VerticalHeaderView

Bietet eine vertikale Kopfansicht als Ergänzung zu einem TableView

WeekNumberColumn

Eine Spalte mit Wochennummern

Verwendung von Qt Quick Controls Typen in Eigenschaftsdeklarationen

Wie bereits in Qt Quick Templates 2 QML Typeserwähnt, wird jeder Typ in Qt Quick Controls durch einen C++ "Template"-Typ unterstützt. Diese Typen sind nicht-visuelle Implementierungen der Logik und des Verhaltens von Steuerelementen.

Beispielsweise werden die API und das Verhalten des Typs Menu durch den C++-Typ in Qt Quick Templates definiert. Jeder Stil, der ein Menü bereitstellen möchte, muss eine Menu.qml zur Verfügung haben, und das Wurzelelement in dieser Datei muss das Menü aus Qt Quick Templates sein. Wenn Sie QtQuick.Controls importieren und ein Menü in QML erstellen, ist der Typ, den Sie erhalten, tatsächlich das QML-Menü, das durch die Menu.qml des Stils definiert ist.

Um ein Steuerelement als Typ in einer Eigenschaftsdeklaration zu verwenden, sollten Sie den entsprechenden Typ aus Qt Quick Templates verwenden. Nehmen wir zum Beispiel an, Sie hätten eine PopupOpener Komponente, die eine Schaltfläche ist, die ein Popup öffnet:

// PopupButton.qml
import QtQuick.Controls

Button {
    required property Popup popup

    onClicked: popup.open()
}

// main.qml
PopupButton {
    popup: saveChangesDialog
}

Dialog {
    id: saveChangesDialog

    // ...
}

Das Ausführen dieses Codes wird zu einem Fehler führen:

Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE

Das liegt an der Vererbungshierarchie:

Popup (C++ type in QtQuick.Templates)
│   └── Popup (QML type in QtQuick.Controls)
└── Dialog (C++ type in QtQuick.Templates)
    └── Dialog (QML type in QtQuick.Controls)

Der Dialog von QtQuick.Controls leitet sich nicht von dem Popup von QtQuick.Controls ab, sondern von QtQuick.Templates.

Verwenden Sie stattdessen das Popup aus Qt Quick Templates als Eigenschaftstyp:

// PopupButton.qml
import QtQuick.Controls
import QtQuick.Templates as T

Button {
    required property T.Popup popup

    onClicked: popup.open()
}

Weitere Informationen über das Modul Qt Quick Controls finden Sie in der Qt Quick Controls Dokumentation des Moduls.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.