PySide6.QtCore.QOperatingSystemVersion

class QOperatingSystemVersion

QOperatingSystemVersion 类提供了有关操作系统版本的信息。更多

PySide6.QtCore.QOperatingSystemVersion 的继承图

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QSysInfo中的其他版本函数不同,QOperatingSystemVersion提供了对完整版本号的访问,开发人员通常使用此版本号来改变行为或根据操作系统版本(与内核版本号或市场版本相对)决定是否启用API或功能。

目前,支持Android、Apple平台(iOS、macOS、tvOS、watchOS和visionOS)以及Windows。

majorVersion()minorVersion()microVersion() 函数根据以下内容返回操作系统版本号的各个部分:

平台

Android

解析android.os.Build.VERSION.RELEASE的结果,使用QVersionNumber,如果前者失败,则回退到android.os.Build.VERSION.SDK_INT来确定主要和次要版本组件

苹果平台

majorVersion , minorVersion , 以及来自 NSProcessInfo.operatingSystemVersion 的 patchVersion

Windows

来自RtlGetVersion的dwMajorVersion、dwMinorVersion和dwBuildNumber - 请注意,此函数始终返回底层操作系统的版本号,与GetVersionEx下的shim不同,如果应用程序未针对该版本的OS进行清单,则shim会隐藏真实的版本号

因为 QOperatingSystemVersion 存储了版本号和操作系统类型,所以在进行比较时可以考虑操作系统类型。例如,在运行 macOS Sierra (v10.12) 的 macOS 系统上,即使表达式左侧对象的主要版本号组件(10)大于右侧对象的版本号(9),以下表达式也将返回 false

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

这允许将多个操作系统的表达式与逻辑OR运算符连接起来,并且仍然按预期工作。例如:

current = QOperatingSystemVersion.current()
if (current >= QOperatingSystemVersion.OSXYosemite or
    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

一个更简单的比较算法可能会错误地在所有版本的macOS(包括Mac OS 9)上返回true。这种行为是通过重载比较运算符来实现的,当被比较的QOperatingSystemVersion实例的操作系统类型不匹配时,返回false。请注意,由于这一点,可能会出现x >= y 和 x < y 对于相同的xy实例都是false的情况。

PySide6.QtCore.QOperatingSystemVersion.Windows7
PySide6.QtCore.QOperatingSystemVersion.Windows8
PySide6.QtCore.QOperatingSystemVersion.Windows8_1
PySide6.QtCore.QOperatingSystemVersion.Windows10
PySide6.QtCore.QOperatingSystemVersion.OSXMavericks
PySide6.QtCore.QOperatingSystemVersion.OSXYosemite
PySide6.QtCore.QOperatingSystemVersion.OSXElCapitan
PySide6.QtCore.QOperatingSystemVersion.MacOSSierra
PySide6.QtCore.QOperatingSystemVersion.MacOSHighSierra
PySide6.QtCore.QOperatingSystemVersion.MacOSMojave
PySide6.QtCore.QOperatingSystemVersion.MacOSCatalina
PySide6.QtCore.QOperatingSystemVersion.MacOSBigSur
PySide6.QtCore.QOperatingSystemVersion.MacOSMonterey
PySide6.QtCore.QOperatingSystemVersion.AndroidJellyBean
PySide6.QtCore.QOperatingSystemVersion.AndroidJellyBean_MR1
PySide6.QtCore.QOperatingSystemVersion.AndroidJellyBean_MR2
PySide6.QtCore.QOperatingSystemVersion.AndroidKitKat
PySide6.QtCore.QOperatingSystemVersion.AndroidLollipop
PySide6.QtCore.QOperatingSystemVersion.AndroidLollipop_MR1
PySide6.QtCore.QOperatingSystemVersion.AndroidMarshmallow
PySide6.QtCore.QOperatingSystemVersion.AndroidNougat
PySide6.QtCore.QOperatingSystemVersion.AndroidNougat_MR1
PySide6.QtCore.QOperatingSystemVersion.AndroidOreo
PySide6.QtCore.QOperatingSystemVersion.AndroidOreo_MR1
PySide6.QtCore.QOperatingSystemVersion.AndroidPie
PySide6.QtCore.QOperatingSystemVersion.Android10
PySide6.QtCore.QOperatingSystemVersion.Android11
PySide6.QtCore.QOperatingSystemVersion.Windows10_1809
PySide6.QtCore.QOperatingSystemVersion.Windows10_1903
PySide6.QtCore.QOperatingSystemVersion.Windows10_1909
PySide6.QtCore.QOperatingSystemVersion.Windows10_2004
PySide6.QtCore.QOperatingSystemVersion.Windows10_20H2
PySide6.QtCore.QOperatingSystemVersion.Windows10_21H1
PySide6.QtCore.QOperatingSystemVersion.Windows10_21H2
PySide6.QtCore.QOperatingSystemVersion.Windows10_22H2
PySide6.QtCore.QOperatingSystemVersion.Windows11
PySide6.QtCore.QOperatingSystemVersion.Windows11_21H2
PySide6.QtCore.QOperatingSystemVersion.Windows11_22H2
PySide6.QtCore.QOperatingSystemVersion.Android12
PySide6.QtCore.QOperatingSystemVersion.Android12L
PySide6.QtCore.QOperatingSystemVersion.Android13
PySide6.QtCore.QOperatingSystemVersion.MacOSVentura