Sur cette page

Qt Quick Controls QML Types

Qt Quick Controls fournit des types QML permettant de créer des interfaces utilisateur. Ces types QML fonctionnent en association avec Qt Quick et Qt Quick Layouts.

Qt Quick Controls Les types QML peuvent être importés dans votre application à l'aide de l'instruction d'importation suivante dans votre fichier .qml :

import QtQuick.Controls

Types QML

AbstractButton

Type de base abstrait fournissant des fonctionnalités communes aux boutons

Action

Action d'interface utilisateur abstraite

ActionGroup

Regroupe des actions

ApplicationWindow

Fenêtre de niveau supérieur stylisée prenant en charge un en-tête et un pied de page

BusyIndicator

Indique une activité en arrière-plan, par exemple pendant le chargement du contenu

Button

Bouton sur lequel on peut cliquer pour exécuter une commande ou répondre à une question

ButtonGroup

Groupe de boutons à cocher mutuellement exclusifs

Calendar

Un espace de noms de calendrier

CalendarModel

Un modèle de calendrier

CheckBox

Bouton à cocher pouvant être activé ou désactivé

CheckDelegate

Délégué d’élément avec un indicateur de sélection pouvant être activé ou désactivé

ComboBox

Combinaison d’un bouton et d’une liste déroulante pour sélectionner des options

Container

Type de base abstrait fournissant des fonctionnalités communes aux conteneurs

ContextMenu

Le type associé permet d’ouvrir un menu contextuel adapté à la plateforme

Control

Type de base abstrait fournissant des fonctionnalités communes à tous les contrôles

DayOfWeekRow

Une ligne de noms correspondant aux jours de la semaine

DelayButton

Bouton de sélection qui s’active lorsqu’on le maintient enfoncé suffisamment longtemps

Dial

Molette circulaire que l'on fait tourner pour définir une valeur

Dialog

Boîte de dialogue contextuelle comportant des boutons standard et un titre, utilisée pour une interaction ponctuelle avec l’utilisateur

DialogButtonBox

Une zone de boutons utilisée dans les boîtes de dialogue

DoubleSpinBox

Permet à l'utilisateur de sélectionner une valeur parmi un ensemble de valeurs à virgule flottante prédéfinies

Drawer

Panneau latéral pouvant être ouvert et fermé à l'aide d'un geste de balayage

Frame

Cadre visuel pour un groupe logique de contrôles

GroupBox

Cadre visuel et titre pour un groupe logique de contrôles

HorizontalHeaderView

Fournit une vue d’en-tête horizontale pour accompagner une TableView

HorizontalHeaderViewDelegate

ItemDelegate

Délégué d'élément de base pouvant être utilisé dans diverses vues et commandes

Label

Étiquette de texte stylisée avec police héritée

Menu

Fenêtre contextuelle pouvant servir de menu contextuel ou de menu déroulant

MenuBar

Fournit une barre de menus de fenêtre

MenuBarItem

Affiche un menu déroulant au sein d'une barre de menus

MenuItem

Affiche un élément au sein d’un menu

MenuSeparator

Sépare un groupe d’éléments d’un menu des éléments adjacents

MonthGrid

Une grille de jours pour un mois civil

Overlay

Une fenêtre superposée pour les fenêtres contextuelles

Page

Contrôle de page stylisé prenant en charge un en-tête et un pied de page

PageIndicator

Indique la page actuellement active

Pane

Fournit un arrière-plan assorti au style et au thème de l’application

Popup

Type de base des contrôles d’interface utilisateur de type fenêtre contextuelle

ProgressBar

Indique la progression d’une opération

RadioButton

Bouton radio exclusif pouvant être activé ou désactivé

RadioDelegate

Délégué d'élément exclusif avec un indicateur de radio pouvant être activé ou désactivé

RangeSlider

Permet de sélectionner une plage de valeurs en faisant glisser deux curseurs le long d’une piste

RoundButton

Un bouton-poussoir aux coins arrondis sur lequel l'utilisateur peut cliquer

ScrollBar

Barre de défilement interactive verticale ou horizontale

ScrollIndicator

Indicateur de défilement vertical ou horizontal non interactif

ScrollView

Vue défilable

SearchField

Un champ de saisie spécialisé conçu pour la fonctionnalité de recherche

SelectionRectangle

Utilisé pour sélectionner des cellules d’un tableau dans une TableView

Slider

Permet de sélectionner une valeur en faisant glisser un curseur le long d'une piste

SpinBox

Permet à l'utilisateur de faire son choix parmi un ensemble de valeurs prédéfinies

SplitHandle

Fournit des propriétés associées aux curseurs de SplitView

SplitView

Dispose les éléments avec un séparateur déplaçable entre chaque élément

StackView

Fournit un modèle de navigation basé sur une pile

SwipeDelegate

Délégué d'élément pouvant être balayé

SwipeView

Permet à l'utilisateur de naviguer entre les pages en balayant latéralement

Switch

Bouton pouvant être activé ou désactivé

SwitchDelegate

Délégué d'élément avec un indicateur de commutation pouvant être activé ou désactivé

TabBar

Permet à l’utilisateur de basculer entre différentes vues ou sous-tâches

TabButton

Bouton dont l'apparence est adaptée à une barre d'onglets

TableViewDelegate

Un délégué pouvant être attribué à une TableView

TextArea

Zone de saisie de texte multiligne

TextField

Champ de saisie de texte sur une seule ligne

ToolBar

Conteneur pour les contrôles contextuels

ToolButton

Bouton dont l'apparence est adaptée à une barre d'outils (ToolBar)

ToolSeparator

Sépare un groupe d'éléments d'une barre d'outils des éléments adjacents

ToolTip

Fournit des info-bulles pour n’importe quel contrôle

TreeViewDelegate

Un délégué pouvant être attribué à une TreeView

Tumbler

Molette permettant de faire défiler les éléments sélectionnables

VerticalHeaderView

Propose une vue d'en-tête verticale pour accompagner une TableView

VerticalHeaderViewDelegate

WeekNumberColumn

Une colonne indiquant les numéros de semaine

Utilisation des types « Qt Quick Controls » dans les déclarations de propriétés

Comme mentionné dans Qt Quick Templates 2 QML Types, chaque type d’ Qt Quick Controls est adossé à un type « modèle » (template) C++. Ces types constituent des implémentations non visuelles de la logique et du comportement des contrôles.

Par exemple, l’API et le comportement du type Menu sont définis par le type C++ dans les modèles d’ Qt Quick. Chaque style souhaitant fournir un Menu doit disposer d’un fichier Menu.qml, et l’élément racine de ce fichier doit être le Menu issu de Qt Quick Templates. Lorsque vous importez QtQuick.Controls et créez un Menu en QML, le type obtenu correspond en réalité au Menu QML défini par le fichier Menu.qml du style.

Pour utiliser un contrôle comme type dans une déclaration de propriété, vous devez utiliser le type correspondant issu des modèles « Qt Quick ». Par exemple, supposons que vous disposiez d’un composant « PopupOpener », qui était un bouton ouvrant une fenêtre contextuelle :

// PopupButton.qml
import QtQuick.Controls

Button {
    required property Popup popup

    onClicked: popup.open()
}

// main.qml
PopupButton {
    popup: saveChangesDialog
}

Dialog {
    id: saveChangesDialog

    // ...
}

L'exécution de ce code entraînera une erreur :

Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE

Cela est dû à la hiérarchie d’héritage :

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

Le composant « Dialog » de QtQuick.Controls ne dérive pas du composant « Popup » de QtQuick.Controls, mais de QtQuick.Templates.

Utilisez plutôt le Popup issu des modèles de Qt Quick comme type de propriété :

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

Button {
    required property T.Popup popup

    onClicked: popup.open()
}

Pour plus d’informations sur le module Qt Quick Controls, consultez la Qt Quick Controls documentation du module.

© 2026 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.