<QtVersionChecks> Proxy Page

Macros

QT_VERSION
QT_VERSION_CHECK(major, minor, patch)

Macro Documentation

QT_VERSION

This macro expands to a numeric value of the same form as QT_VERSION_CHECK() constructs, that specifies the version of Qt with which code using it is compiled. For example, if you compile your application with Qt 6.1.2, the QT_VERSION macro will expand to 0x060102, the same as QT_VERSION_CHECK(6, 1, 2). Note that this need not agree with the version the application will find itself using at runtime.

You can use QT_VERSION to select the latest Qt features where available while falling back to older implementations otherwise. Using QT_VERSION_CHECK() for the value to compare with is recommended.

Example:

 #if QT_VERSION >= QT_VERSION_CHECK(4, 1, 0)
     QIcon icon = style()->standardIcon(QStyle::SP_TrashIcon);
 #else
     QPixmap pixmap = style()->standardPixmap(QStyle::SP_TrashIcon);
     QIcon icon(pixmap);
 #endif

See also QT_VERSION_STR, QT_VERSION_CHECK(), and qVersion().

QT_VERSION_CHECK(major, minor, patch)

Turns the major, minor and patch numbers of a version into an integer that encodes all three. When expressed in hexadecimal, this integer is of form 0xMMNNPP wherein 0xMM == major, 0xNN == minor, and 0xPP == patch. This can be compared with another similarly processed version ID.

Example:

 #include <QtGlobal>

 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
 #include <QtWidgets>
 #else
 #include <QtGui>
 #endif

Note: the parameters are read as integers in the normal way, so should normally be written in decimal (so a 0x prefix must be used if writing them in hexadecimal). Thus QT_VERSION_CHECK(5, 15, 0) is equal to 0x050f00, which could equally be written QT_VERSION_CHECK(5, 0xf, 0).

See also QT_VERSION.