Changes to Qt GUI▲
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 GUI, and provide guidance to handle them.
Kernel classes▲
The QBitmap class▲
Implicit construction of a QBitmap from a QPixmap is no longer supported. The constructor and assignment operator have been made explicit and marked as deprecated. Use the new static factory function fromPixmap instead.
The QCursor class▲
Implicit construction of a QCursor from a QPixmap is no longer supported, the constructor has been made explicit.
The QKeyCombination class▲
QKeyCombination is a new class for storing a combination of a key with an optional modifier. It should be used as a replacement for combining values from the Qt::Key enum with a modifier in a type-safe way.
We recommend migrating code that currently uses operator+() to combine a key and modifiers, as future C++ standards are likely to declare arithmetic operations between unrelated enumeration types as illegal. Use operator|(), and change APIs that expect an int to expect a QKeyCombination instead.
Existing APIs that expect an int for a key combination can be called using QKeyCombination::toCombined().
Text classes▲
The QFontDatabase class▲
The QFontDatabase class has now only static member functions. The constructor has been deprecated. Instead of e.g.
const
QStringList fontFamilies =
QFontDatabase().families();
use
const
QStringList fontFamilies =
QFontDatabase::
families();
The QFont class▲
The numerical values of the QFont::Weight enumerator have been changed to be in line with OpenType weight values. QFont::setWeight() expects an enum value instead of an int, and code that calls the setter with an integer will fail to compile. To continue to use old integer values, use QFont::setLegacyWeight().
Painting classes▲
See the porting guide for Qt Print Support for information about QPagedPaintDevice and other printing related classes.
Utility classes▲
OpenGL classes▲
With the introduction of Qt RHI as the rendering foundation in Qt, most classes prefixed by QOpenGL have been moved into the Qt OpenGL module.
More details can be found in the Qt OpenGL porting guide.
One notable exception is the class QOpenGLContext, which still resides in Qt GUI.
In addition, the class QOpenGLWidget has been moved to a new module, named Qt OpenGL Widgets.
The QOpenGLContext class▲
The QOpenGLContext::versionFunctions() function is replaced by QOpenGLVersionFunctionsFactory::get(). QOpenGLVersio