QOperatingSystemVersion 类

The QOperatingSystemVersion class provides information about the operating system version. 更多...

头: #include <QOperatingSystemVersion>
qmake: QT += core
Since: Qt 5.9

公共类型

enum OSType { Android, IOS, MacOS, TvOS, ..., Unknown }

公共函数

QOperatingSystemVersion (QOperatingSystemVersion::OSType osType , int vmajor , int vminor = ..., int vmicro = ...)
bool isAnyOfType (std::initializer_list<OSType> 类型 ) const
int majorVersion () const
int microVersion () const
int minorVersion () const
QString name () const
int segmentCount () const
QOperatingSystemVersion::OSType type () const

静态公共成员

const QOperatingSystemVersion AndroidJellyBean
const QOperatingSystemVersion AndroidJellyBean_MR1
const QOperatingSystemVersion AndroidJellyBean_MR2
const QOperatingSystemVersion AndroidKitKat
const QOperatingSystemVersion AndroidLollipop
const QOperatingSystemVersion AndroidLollipop_MR1
const QOperatingSystemVersion AndroidMarshmallow
const QOperatingSystemVersion AndroidNougat
const QOperatingSystemVersion AndroidNougat_MR1
const QOperatingSystemVersion AndroidOreo
const QOperatingSystemVersion MacOSBigSur
const QOperatingSystemVersion MacOSCatalina
const QOperatingSystemVersion MacOSHighSierra
const QOperatingSystemVersion MacOSMojave
const QOperatingSystemVersion MacOSSierra
const QOperatingSystemVersion OSXElCapitan
const QOperatingSystemVersion OSXMavericks
const QOperatingSystemVersion OSXYosemite
const QOperatingSystemVersion Windows7
const QOperatingSystemVersion Windows8
const QOperatingSystemVersion Windows10
const QOperatingSystemVersion Windows8_1
QOperatingSystemVersion current ()
QOperatingSystemVersion::OSType currentType ()

详细描述

The QOperatingSystemVersion class provides information about the operating system version.

不像其它版本函数在 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 QSysInfo::macVersion and QSysInfo::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() ,和 microVersion() functions return the parts of the operating system version number based on:

平台
Android result of parsing android.os.Build.VERSION.RELEASE 使用 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

因为 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 .

成员类型文档编制

enum QOperatingSystemVersion:: OSType

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

常量 描述
QOperatingSystemVersion::Android 6 The Google Android operating system.
QOperatingSystemVersion::IOS 3 The Apple iOS operating system.
QOperatingSystemVersion::MacOS 2 The Apple macOS 操作系统。
QOperatingSystemVersion::TvOS 4 The Apple tvOS operating system.
QOperatingSystemVersion::WatchOS 5 The Apple watchOS operating system.
QOperatingSystemVersion::Windows 1 The Microsoft Windows operating system.
QOperatingSystemVersion::Unknown 0 An unknown or unsupported operating system.

成员函数文档编制

QOperatingSystemVersion:: QOperatingSystemVersion ( QOperatingSystemVersion::OSType osType , int vmajor , int vminor = ..., int vmicro = ...)

构造 QOperatingSystemVersion consisting of the OS type osType , and major, minor, and micro version numbers vmajor , vminor and vmicro ,分别。

[static] QOperatingSystemVersion QOperatingSystemVersion:: current ()

返回 QOperatingSystemVersion 指示当前 OS (操作系统) 及其版本号。

另请参阅 currentType ().

[static] QOperatingSystemVersion::OSType QOperatingSystemVersion:: currentType ()

返回当前 OS 类型无需构造 QOperatingSystemVersion 实例。

另请参阅 current ().

bool QOperatingSystemVersion:: isAnyOfType ( std::initializer_list < OSType > 类型 ) const

Returns whether the OS type identified by the QOperatingSystemVersion matches any of the OS types in 类型 .

int QOperatingSystemVersion:: majorVersion () const

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.

另请参阅 minorVersion () 和 microVersion ().

int QOperatingSystemVersion:: microVersion () const

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.

另请参阅 majorVersion () 和 minorVersion ().

int QOperatingSystemVersion:: minorVersion () const

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.

另请参阅 majorVersion () 和 microVersion ().

QString QOperatingSystemVersion:: name () const

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

另请参阅 type ().

int QOperatingSystemVersion:: segmentCount () const

Returns the number of integers stored in the version number.

QOperatingSystemVersion::OSType QOperatingSystemVersion:: type () const

Returns the OS type identified by the QOperatingSystemVersion .

另请参阅 name ().

成员变量文档编制

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidJellyBean

This variable holds a version corresponding to Android Jelly Bean (version 4.1, API level 16).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidJellyBean_MR1

This variable holds a version corresponding to Android Jelly Bean, maintenance release 1 (version 4.2, API level 17).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidJellyBean_MR2

This variable holds a version corresponding to Android Jelly Bean, maintenance release 2 (version 4.3, API level 18).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidKitKat

This variable holds a version corresponding to Android KitKat (versions 4.4 & 4.4W, API levels 19 & 20).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidLollipop

This variable holds a version corresponding to Android Lollipop (version 5.0, API level 21).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidLollipop_MR1

This variable holds a version corresponding to Android Lollipop, maintenance release 1 (version 5.1, API level 22).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidMarshmallow

This variable holds a version corresponding to Android Marshmallow (version 6.0, API level 23).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidNougat

This variable holds a version corresponding to Android Nougat (version 7.0, API level 24).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidNougat_MR1

This variable holds a version corresponding to Android Nougat, maintenance release 1 (version 7.0, API level 25).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: AndroidOreo

This variable holds a version corresponding to Android Oreo (version 8.0, API level 26).

该文档编制在 Qt 5.9.2 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: MacOSBigSur

This variable holds a version corresponding to macOS Big Sur

The actual version number depends on whether the application was built using the Xcode 12 SDK. If it was, the version number corresponds to macOS 11.0. If not it will correspond to macOS 10.16.

By comparing QOperatingSystemVersion::current () to this constant you will always end up comparing to the right version number.

该文档编制在 Qt 6.0 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: MacOSCatalina

This variable holds a version corresponding to macOS Catalina (version 10.15).

该文档编制在 Qt 5.12.5 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: MacOSHighSierra

This variable holds a version corresponding to macOS High Sierra (version 10.13).

该文档编制在 Qt 5.9.1 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: MacOSMojave

This variable holds a version corresponding to macOS Mojave (version 10.14).

该文档编制在 Qt 5.11.2 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: MacOSSierra

This variable holds a version corresponding to macOS Sierra (version 10.12).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: OSXElCapitan

此变量保持版本对应 OS X El Capitan (第 10.11 版)。

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: OSXMavericks

This variable holds a version corresponding to OS X Mavericks (version 10.9).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: OSXYosemite

This variable holds a version corresponding to OS X Yosemite (version 10.10).

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: Windows7

此变量保持版本对应 Windows 7 (第 6.1 版)。

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: Windows8

此变量保持版本对应 Windows 8 (第 6.2 版)。

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: Windows10

此变量保持版本对应 Windows 10 (第 10.0 版)。

该文档编制在 Qt 5.9 引入。

const QOperatingSystemVersion QOperatingSystemVersion:: Windows8_1

此变量保持版本对应 Windows 8.1 (第 6.3 版)。

该文档编制在 Qt 5.9 引入。