QOperatingSystemVersion

The QOperatingSystemVersion class provides information about the operating system version. More

Inheritance diagram of PySide2.QtCore.QOperatingSystemVersion

New in version 5.9.

Synopsis

Functions

Static functions

Detailed Description

Unlike other version functions in QSysInfo , QOperatingSystemVersion provides access to the full version number that developers typically use to vary behavior or determine whether to enable APIs or features based on the operating system version (as opposed to the kernel version number or marketing version).

This class is also a complete replacement for macVersion and windowsVersion , additionally providing access to the third (micro) version number component.

Presently, Android, Apple Platforms (iOS, macOS , tvOS, and watchOS), and Windows are supported.

The majorVersion() , minorVersion() , and microVersion() functions return the parts of the operating system version number based on:

Platforms

Value

Android

result of parsing android.os.Build.VERSION.RELEASE using QVersionNumber , with a fallback to android.os.Build.VERSION.SDK_INT to determine the major and minor version component if the former fails

Apple Platforms

majorVersion , minorVersion , and patchVersion from NSProcessInfo.operatingSystemVersion

Windows

dwMajorVersion, dwMinorVersion, and dwBuildNumber from RtlGetVersion - note that this function ALWAYS return the version number of the underlying operating system, as opposed to the shim underneath GetVersionEx that hides the real version number if the application is not manifested for that version of the OS

Because QOperatingSystemVersion stores both a version number and an OS type, the OS type can be taken into account when performing comparisons. For example, on a macOS system running macOS Sierra (v10.12), the following expression will return false even though the major version number component of the object on the left hand side of the expression (10) is greater than that of the object on the right (9):

QOperatingSystemVersion::current() >= QOperatingSystemVersion(QOperatingSystemVersion::IOS, 9)

This allows expressions for multiple operating systems to be joined with a logical OR operator and still work as expected. For example:

auto current = QOperatingSystemVersion::current();
if (current >= QOperatingSystemVersion::OSXYosemite ||
    current >= QOperatingSystemVersion(QOperatingSystemVersion::IOS, 8)) {
    // returns true on macOS >= 10.10 and iOS >= 8.0, but false on macOS < 10.10 and iOS < 8.0
}

A more naive comparison algorithm might incorrectly return true on all versions of macOS , including Mac OS 9. This behavior is achieved by overloading the comparison operators to return false whenever the OS types of the QOperatingSystemVersion instances being compared do not match. Be aware that due to this it can be the case x >= y and x < y are BOTH false for the same instances of x and y .

class QOperatingSystemVersion(osType, vmajor[, vminor=-1[, vmicro=-1]])

QOperatingSystemVersion(QOperatingSystemVersion)

param osType

OSType

param vminor

int

param QOperatingSystemVersion

QOperatingSystemVersion

param vmicro

int

param vmajor

int

Constructs a QOperatingSystemVersion consisting of the OS type osType , and major, minor, and micro version numbers vmajor , vminor and vmicro , respectively.

PySide2.QtCore.QOperatingSystemVersion.OSType

This enum provides symbolic names for the various operating system families supported by QOperatingSystemVersion .

Constant

Description

QOperatingSystemVersion.Android

The Google Android operating system.

QOperatingSystemVersion.IOS

The Apple iOS operating system.

QOperatingSystemVersion.MacOS

The Apple macOS operating system.

QOperatingSystemVersion.TvOS

The Apple tvOS operating system.

QOperatingSystemVersion.WatchOS

The Apple watchOS operating system.

QOperatingSystemVersion.Windows

The Microsoft Windows operating system.

QOperatingSystemVersion.Unknown

An unknown or unsupported operating system.

PySide2.QtCore.QOperatingSystemVersion.Windows7
PySide2.QtCore.QOperatingSystemVersion.Windows8
PySide2.QtCore.QOperatingSystemVersion.Windows8_1
PySide2.QtCore.QOperatingSystemVersion.Windows10
PySide2.QtCore.QOperatingSystemVersion.OSXMavericks
PySide2.QtCore.QOperatingSystemVersion.OSXYosemite
PySide2.QtCore.QOperatingSystemVersion.OSXElCapitan
PySide2.QtCore.QOperatingSystemVersion.MacOSSierra
PySide2.QtCore.QOperatingSystemVersion.MacOSHighSierra
PySide2.QtCore.QOperatingSystemVersion.MacOSMojave
PySide2.QtCore.QOperatingSystemVersion.MacOSCatalina
PySide2.QtCore.QOperatingSystemVersion.AndroidJellyBean
PySide2.QtCore.QOperatingSystemVersion.AndroidJellyBean_MR1
PySide2.QtCore.QOperatingSystemVersion.AndroidJellyBean_MR2
PySide2.QtCore.QOperatingSystemVersion.AndroidKitKat
PySide2.QtCore.QOperatingSystemVersion.AndroidLollipop
PySide2.QtCore.QOperatingSystemVersion.AndroidLollipop_MR1
PySide2.QtCore.QOperatingSystemVersion.AndroidMarshmallow
PySide2.QtCore.QOperatingSystemVersion.AndroidNougat
PySide2.QtCore.QOperatingSystemVersion.AndroidNougat_MR1
PySide2.QtCore.QOperatingSystemVersion.AndroidOreo
static PySide2.QtCore.QOperatingSystemVersion.current()
Return type

QOperatingSystemVersion

Returns a QOperatingSystemVersion indicating the current OS and its version number.

See also

currentType()

static PySide2.QtCore.QOperatingSystemVersion.currentType()
Return type

OSType

Returns the current OS type without constructing a QOperatingSystemVersion instance.

See also

current()

PySide2.QtCore.QOperatingSystemVersion.majorVersion()
Return type

int

Returns the major version number, that is, the first segment of the operating system’s version number.

See the main class documentation for what the major version number is on a given operating system.

-1 indicates an unknown or absent version number component.

PySide2.QtCore.QOperatingSystemVersion.microVersion()
Return type

int

Returns the micro version number, that is, the third segment of the operating system’s version number.

See the main class documentation for what the micro version number is on a given operating system.

-1 indicates an unknown or absent version number component.

PySide2.QtCore.QOperatingSystemVersion.minorVersion()
Return type

int

Returns the minor version number, that is, the second segment of the operating system’s version number.

See the main class documentation for what the minor version number is on a given operating system.

-1 indicates an unknown or absent version number component.

PySide2.QtCore.QOperatingSystemVersion.name()
Return type

unicode

Returns a string representation of the OS type identified by the QOperatingSystemVersion .

See also

type()

PySide2.QtCore.QOperatingSystemVersion.segmentCount()
Return type

int

Returns the number of integers stored in the version number.

PySide2.QtCore.QOperatingSystemVersion.type()
Return type

OSType

Returns the OS type identified by the QOperatingSystemVersion .

See also

name()