Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use.
We try to maintain binary and source compatibility for all the public APIs in each release. But some changes were inevitable in an effort to make Qt a better framework.
In this topic we summarize those changes in Qt Widgets, and provide guidance to handle them.
The virtual QWidget::enterEvent() handler now receives a QEnterEvent* parameter which has information about the pointer position, rather than a plain QEvent*.
QDesktopWidget was already deprecated in Qt 5, and has been removed in Qt 6, together with QApplication::desktop().
QScreen provides equivalent functionality to query for information about available screens, screen that form a virtual desktop, and screen geometries.
Use QWidget::setScreen() to create a QWidget on a specific display; note that this does not move a widget to a screen in a virtual desktop setup.
These classes have been moved into the QtGui module. Member functions that depend on types defined in QtWidgets (such as QAction::menu() and QAction::setMenu()) are implemented as templates that will be instantiated only when called.
The default timeout parameter for QAbstractButton::animateClick() is removed to allow modern connection syntax without the need for qOverload.
The QComboBox::setModel() function is now virtual.
When QDateTimeEdit::setDateTime() is called with a date-time whose time-spec doesn't match that of the QDateTimeEdit instance, the date-time is converted to the time-spec of the QDateTimeEdit. This gives a date-time that describes the same instant in time, but does so in the same terms as the QDateTimeEdit uses. Previously, the date and time from the passed date-time were combined with the time-spec of the widget, ignoring the time-spec of the date-time; this could describe a different point in time than the one described by the date-time passed.
The virtual viewOptions() method that previously returned a QStyleOptionViewItem object has been renamed to initViewItemOption, and initializes a QStyleOptionViewItem object that's passed in through a pointer.
All versioned QStyleOption subclasses are consolidated, and the version numbers are reset to 1.
The various initStyleOption() methods in widget classes are now virtual.
Styling a widget by its property in Qt 5 vs Qt 6 is different, especially if the property is an enum. In Qt 5, the selector value for such a property is the integer equivalent of the enum value, while in Qt 6 the string value is used. The following example demonstrates this difference:
// Qt 5 style sheet QToolButton[popupMode="1"] { padding-right: 20px; }
// Qt 6 style sheet QToolButton[popupMode=MenuButtonPopup] { padding-right: 20px; }
The widget independent classes of the Undo/Redo framework have been moved into the QtGui module.
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: