Sur cette page

Modifications apportées à Qt Widgets

Qt 6 résultent d'un effort délibéré visant à rendre le framework plus efficace et plus facile à utiliser.

Nous nous efforçons de maintenir la compatibilité binaire et source pour toutes les API publiques à chaque version. Cependant, certaines modifications étaient inévitables afin d’améliorer le framework Qt.

Dans cette rubrique, nous résumons ces modifications dans Qt Widgets et fournissons des conseils pour les gérer.

Classes du noyau

La classe QWidget

Le gestionnaire virtuel QWidget::enterEvent() reçoit désormais un paramètre de type QEnterEvent* contenant des informations sur la position du pointeur, au lieu d’un simple QEvent*.

QDesktopWidget et QApplication::desktop()

QDesktopWidget était déjà obsolète dans Qt 5 et a été supprimé dans Qt 6, tout comme QApplication::desktop().

QScreen fournit des fonctionnalités équivalentes pour interroger les informations relatives aux écrans disponibles, aux écrans formant un bureau virtuel et aux géométries d’écran.

Utilisez ` QWidget::setScreen()` pour créer un ` QWidget ` sur un écran spécifique ; notez que cela ne déplace pas un widget vers un écran dans une configuration de bureau virtuel.

QAction, QActionGroup

Ces classes ont été déplacées dans le module QtGui. Les fonctions membres qui dépendent de types définis dans QtWidgets (telles que QAction::menu() et QAction::setMenu()) sont implémentées sous forme de modèles qui ne seront instanciés qu’au moment de leur appel.

Widgets

La classe QAbstractButton

Le paramètre de délai d'expiration par défaut de la fonction ` QAbstractButton::animateClick()` a été supprimé afin de permettre l'utilisation de la syntaxe de connexion moderne sans avoir recours à ` qOverload`.

La classe QComboBox

La fonction ` QComboBox::setModel()` est désormais virtuelle.

La classe QDateTimeEdit

Lorsque la méthode QDateTimeEdit::setDateTime() est appelée avec une date-heure dont la spécification temporelle ne correspond pas à celle de l’instance QDateTimeEdit, la date-heure est convertie selon la spécification temporelle de l’ QDateTimeEdit. On obtient ainsi une date-heure qui décrit le même instant, mais selon les mêmes termes que ceux utilisés par l’ QDateTimeEdit. Auparavant, la date et l’heure de la date-heure transmise étaient combinées avec le format de date-heure du widget, en ignorant le format de la date-heure transmise ; cela pouvait décrire un moment différent de celui décrit par la date-heure transmise.

ItemViews

La classe QAbstractItemView

La méthode virtuelle viewOptions(), qui renvoyait auparavant un objet ` QStyleOptionViewItem `, a été renommée `initViewItemOption` et initialise désormais un objet ` QStyleOptionViewItem ` transmis via un pointeur.

Toutes les sous-classes versionnées d’ QStyleOption ont été regroupées, et les numéros de version ont été réinitialisés à 1.

Les différentes méthodes `initStyleOption()` des classes de widgets sont désormais virtuelles.

Modifications des feuilles de style

La mise en forme d’un widget via sa propriété diffère entre Qt 5 et Qt 6, en particulier si la propriété est une énumération. Dans Qt 5, la valeur de sélection pour une telle propriété correspond à l’équivalent entier de la valeur de l’énumération, tandis que dans Qt 6, c’est la valeur sous forme de chaîne de caractères qui est utilisée. L’exemple suivant illustre cette différence :

// Qt 5 style sheet
QToolButton[popupMode="1"] {
    padding-right: 20px;
}
// Qt 6 style sheet
QToolButton[popupMode=MenuButtonPopup] {
    padding-right: 20px;
}

Classes utilitaires

QUndoCommand, QUndoStack et QUndoGroup

Les classes indépendantes des widgets du framework Undo/Redo ont été déplacées dans le module « QtGui ».

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