Die Änderungen an Qt Widgets
Qt 6 sind das Ergebnis des bewussten Bemühens, das Framework effizienter und benutzerfreundlicher zu gestalten.
Wir versuchen, die Binär- und Quellcodekompatibilität für alle öffentlichen APIs in jeder Version zu erhalten. Einige Änderungen waren jedoch unvermeidlich, um Qt zu einem besseren Framework zu machen.
In diesem Thema fassen wir diese Änderungen unter Qt Widgets zusammen und geben Hinweise zu ihrer Handhabung.
Kernel-Klassen
Die QWidget-Klasse
Der virtuelle QWidget::enterEvent()-Handler erhält nun einen QEnterEvent* Parameter, der Informationen über die Zeigerposition enthält, anstatt eines einfachen QEvent*.
QDesktopWidget und QApplication::desktop()
QDesktopWidget war bereits in Qt 5 veraltet und wurde in Qt 6 entfernt, zusammen mit QApplication::desktop().
QScreen bietet äquivalente Funktionalität zur Abfrage von Informationen über verfügbare Bildschirme, Bildschirme, die einen virtuellen Desktop bilden, und Bildschirmgeometrien.
Verwenden Sie QWidget::setScreen(), um ein QWidget auf einem bestimmten Bildschirm zu erstellen; beachten Sie, dass dies ein Widget nicht auf einen Bildschirm in einem virtuellen Desktop-Setup verschiebt.
QAction, QActionGroup
Diese Klassen wurden in das Modul QtGui verschoben. Mitgliedsfunktionen, die von in QtWidgets definierten Typen abhängen (wie QAction::menu() und QAction::setMenu()), sind als Vorlagen implementiert, die nur beim Aufruf instanziiert werden.
Widgets
Die Klasse QAbstractButton
Der Standard-Timeout-Parameter für QAbstractButton::animateClick() wurde entfernt, um eine moderne Verbindungssyntax ohne die Notwendigkeit von qOverload zu ermöglichen.
Die QComboBox-Klasse
Die Funktion QComboBox::setModel() ist jetzt virtuell.
Die Klasse QDateTimeEdit
Wenn QDateTimeEdit::setDateTime() mit einer Datumszeit aufgerufen wird, deren Zeitangabe nicht mit der der QDateTimeEdit Instanz übereinstimmt, wird die Datumszeit in die Zeitangabe der QDateTimeEdit konvertiert. Dies ergibt eine Datumszeit, die denselben Zeitpunkt beschreibt, aber in denselben Begriffen wie die QDateTimeEdit verwendet. Zuvor wurden das Datum und die Uhrzeit aus der übergebenen Datumszeit mit der Zeitangabe des Widgets kombiniert, wobei die Zeitangabe der Datumszeit ignoriert wurde; dies konnte einen anderen Zeitpunkt beschreiben als den, der durch die übergebene Datumszeit beschrieben wurde.
ItemViews
Die Klasse QAbstractItemView
Die virtuelle viewOptions()-Methode, die zuvor ein QStyleOptionViewItem -Objekt zurückgab, wurde in initViewItemOption umbenannt und initialisiert ein QStyleOptionViewItem -Objekt, das über einen Zeiger übergeben wird.
Styling-Klassen und zugehörige APIs
Alle versionierten QStyleOption Unterklassen werden konsolidiert und die Versionsnummern werden auf 1 zurückgesetzt.
Die verschiedenen initStyleOption()-Methoden in Widget-Klassen sind jetzt virtuell.
Änderungen im Stylesheet
Das Styling eines Widgets anhand seiner Eigenschaft ist in Qt 5 und Qt 6 unterschiedlich, insbesondere wenn die Eigenschaft ein Enum ist. In Qt 5 ist der Selektorwert für eine solche Eigenschaft das Integer-Äquivalent des Enum-Wertes, während in Qt 6 der String-Wert 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; }
Utility-Klassen
QUndoCommand, QUndoStack, und QUndoGroup
Die widget-unabhängigen Klassen des Undo/Redo-Frameworks wurden in das Modul QtGui verschoben.
© 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.