Änderungen an Qt Widgets
Qt 6 sind das Ergebnis bewusster Bemühungen, das Framework effizienter und benutzerfreundlicher zu gestalten.
Wir bemühen uns, bei jeder Version die Binär- und Quellkompatibilität für alle öffentlichen APIs zu gewährleisten. Einige Änderungen waren jedoch unvermeidlich, um Qt zu einem besseren Framework zu machen.
In diesem Abschnitt fassen wir diese Änderungen in „ Qt Widgets “ zusammen und geben Hinweise zu deren Handhabung.
Kernel-Klassen
Die Klasse `QWidget`
Der virtuelle Handler „ QWidget::enterEvent()“ erhält nun einen Parameter vom Typ „ QEnterEvent*“, der Informationen zur Zeigerposition enthält, anstelle eines einfachen „ QEvent*“.
QDesktopWidget und QApplication::desktop()
QDesktopWidget war bereits in Qt 5 veraltet und wurde in Qt 6 zusammen mit QApplication::desktop() entfernt.
QScreen bietet eine gleichwertige Funktionalität zum Abfragen von Informationen über verfügbare Bildschirme, Bildschirme, die einen virtuellen Desktop bilden, und Bildschirmgeometrien.
Verwenden Sie ` QWidget::setScreen()` zum Erstellen eines ` QWidget ` auf einem bestimmten Bildschirm; beachten Sie, dass dadurch kein Widget auf einen Bildschirm in einer virtuellen Desktop-Konfiguration verschoben wird.
QAction, QActionGroup
Diese Klassen wurden in das Modul „ QtGui “ verschoben. Mitgliedsfunktionen, die von in „ QtWidgets “ definierten Typen abhängen (wie z. B. „ QAction::menu()“ und „ QAction::setMenu()“), sind als Vorlagen implementiert, die erst beim Aufruf instanziiert werden.
Widgets
Die Klasse `QAbstractButton`
Der Standard-Timeout-Parameter für ` QAbstractButton::animateClick()` wurde entfernt, um die moderne Verbindungssyntax ohne die Notwendigkeit von ` qOverload` zu ermöglichen.
Die Klasse `QComboBox`
Die Funktion ` QComboBox::setModel()` ist nun virtuell.
Die Klasse `QDateTimeEdit`
Wenn ` QDateTimeEdit::setDateTime()` mit einem Datums- und Zeitwert aufgerufen wird, dessen Zeitangabe nicht mit der der ` QDateTimeEdit `-Instanz übereinstimmt, wird der Datums- und Zeitwert in die Zeitangabe des ` QDateTimeEdit` konvertiert. Dies ergibt einen Datums- und Zeitwert, der denselben Zeitpunkt beschreibt, jedoch in derselben Form, wie sie das ` QDateTimeEdit ` verwendet. Bisher wurden Datum und Uhrzeit der übergebenen Zeitangabe mit der Zeitangabe des Widgets kombiniert, wobei die Zeitangabe der Zeitangabe ignoriert wurde; dies konnte zu einem anderen Zeitpunkt führen als dem, der durch die übergebene Zeitangabe beschrieben wurde.
ItemViews
Die Klasse `QAbstractItemView`
Die virtuelle Methode `viewOptions()`, die zuvor ein ` QStyleOptionViewItem `-Objekt zurückgab, wurde in `initViewItemOption` umbenannt und initialisiert nun ein ` QStyleOptionViewItem `-Objekt, das über einen Zeiger übergeben wird.
Styling-Klassen und zugehörige APIs
Alle versionierten Unterklassen von ` QStyleOption ` wurden zusammengefasst, und die Versionsnummern wurden auf 1 zurückgesetzt.
Die verschiedenen „initStyleOption()“-Methoden in Widget-Klassen sind nun virtuell.
Änderungen an Stylesheets
Die Gestaltung eines Widgets anhand seiner Eigenschaft unterscheidet sich in Qt 5 und Qt 6, insbesondere wenn es sich bei der Eigenschaft um eine Enumeration handelt. In Qt 5 entspricht der Selektorwert für eine solche Eigenschaft dem ganzzahligen Äquivalent des Enumerationswerts, während in Qt 6 der Zeichenfolgenwert verwendet wird. Das folgende Beispiel veranschaulicht diesen Unterschied:
// Qt 5 style sheet
QToolButton[popupMode="1"] {
padding-right: 20px;
}// Qt 6 style sheet
QToolButton[popupMode=MenuButtonPopup] {
padding-right: 20px;
}Hilfsklassen
QUndoCommand, QUndoStack und QUndoGroup
Die widgetunabhängigen Klassen des Undo/Redo-Frameworks wurden in das Modul „ QtGui “ verschoben.
© 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.