- class QSysInfo#
-
概述#
静态函数#
def
bootUniqueId()
def
buildAbi()
def
kernelType()
def
kernelVersion()
def
productType()
def
productVersion()
注意
本文档可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。
详细描述#
某些常量仅在特定的平台上定义。您可以使用预处理器符号
Q_OS_WIN
和Q_OS_MACOS
来测试应用程序是否在Windows或macOS下编译。另请参阅
- 类 Sizes#
此枚举提供了关于底层架构使用的数据结构大小的特定平台信息。
常量
描述
QSysInfo.WordSize
应用程序编译平台上的指针大小的位数(32或64)。
- 类 Endian#
常量
描述
QSysInfo.BigEndian
大端字节序(也称为网络字节序)
QSysInfo.LittleEndian
小端字节序
QSysInfo.ByteOrder
等于BigEndian或LittleEndian,取决于平台的字节序。
- 静态 bootUniqueId()#
- 返回类型:
如果可以确定,返回该机器启动的唯一ID。如果无法确定唯一的ID,则此函数返回一个空字节数组。此值预计在每次启动后都会更改,并可被视为全局唯一的。
此函数目前仅在Linux和Apple操作系统上实现。
另请参阅
- 静态 buildAbi()#
- 返回类型:
str
返回Qt编译为目标架构的全局字符串。该字符串有助于区分不同的、不兼容的构建。例如,它可以用作请求服务器升级包的标识符。
此函数返回的值保持稳定,如下所述:结果中的强制性组件将在Qt的未来版本中保持不变,但可能添加可选后缀。
返回的值由三部分或更多部分组成,由连字符(“-”)分隔。它们是
组件
值
CPU架构
与
buildCpuArchitecture()
相同,例如“arm”,“i386”,“mips”或“x86_64”端序
“little_endian”或“big_endian”
字大小
是32位还是64位应用程序。可能的值是:“llp64”(Windows 64位)、“lp64”(Unix 64位)、“ilp32”(32位)
(可选)ABI
此架构中,可能存在零个或多个代表不同API的组件。目前,Qt为ARM和MIPS处理器提供了可选的API组件:一个组件是主要API(如“eabi”,“o32”,“n32”,“o64”);另一个是调用约定是否使用硬件浮点寄存器(存在“hardfloat”)。
另外,如果Qt使用
-qreal float
配置,则存在ABI选项标签“qreal_float”。如果Qt使用其他类型作为qreal,该类型在“qreal_”之后存在,除了字母和数字以外的所有字符都通过下划线转义,然后跟两个十六进制数字。例如,-qreal long double
变为“qreal_long_20double”。- static buildCpuArchitecture()#
- 返回类型:
str
以文本格式返回Qt编译的目标CPU架构。请注意,如果存在仿真层或者CPU支持多架构(例如,x86-64处理器支持i386应用程序),则这可能与应用程序运行的CPU不匹配。为了检测这种情况,请使用
currentCpuArchitecture()
。此函数返回的值是稳定的,并且不会随时间改变,因此应用程序可以将返回值用作标识符,除了可能随着时间的推移添加新的CPU类型。
典型返回值包括(注意:列表不全面)
“arm”
“arm64”
“i386”
“ia64”
“mips”
“mips64”
“power”
“power64”
“sparc”
“sparcv9”
“x86_64”
- static currentCpuArchitecture()#
- 返回类型:
str
以文本格式返回应用程序正在运行的CPU架构。请注意,此函数依赖于操作系统报告的信息,如果不报告实际CPU架构或有能力提供该信息,可能无法检测出实际的CPU架构。例如,32位操作系统运行在64位CPU上通常无法确定CPU实际上能够运行64位程序。
此函数返回的值大部分是稳定的:将尝试确保它们随时间保持不变并匹配QSysInfo::buildCpuArchitecture()返回的值。然而,由于所使用的操作系统函数的性质,可能存在一些差异。
典型返回值包括(注意:列表不全面)
“arm”
“arm64”
“i386”
“ia64”
“mips”
“mips64”
“power”
“power64”
“sparc”
“sparcv9”
“x86_64”
- static kernelType()#
- 返回类型:
str
以返回Qt编译的操作系统的类型。这也是应用程序运行在之上的内核,除非主机操作系统正在运行某种兼容性或虚拟化层。
本函数返回的值是稳定的,不会随时间变化,因此应用可以将其作为标识符依赖,除非随着时间的推移可能会添加新的操作系统内核类型。
在Windows上,此函数返回Windows内核的类型,例如“winnt”。在Unix系统上,返回与
uname -s
命令的输出相同(小写)。注意
此函数可能返回令人惊讶的值:对于所有运行Linux(包括Android)的操作系统的操作系统,它返回“linux”;对于所有运行QNX的操作系统的操作系统,它返回“qnx”;对于Debian/kFreeBSD,它返回“freebsd”;对于macOS和iOS,它返回“darwin”。有关应用程序运行的产品类型的信息,请参阅
productType()
。- 静态 kernelVersion()#
- 返回类型:
str
返回操作系统内核的发布版本。在Windows上,它返回NT内核的版本。在包括Android和macOS的Unix系统上,它返回与
uname -r
命令相同的输出。如果无法确定版本,则此函数可能返回一个空字符串。
- 静态 machineHostName()#
- 返回类型:
str
如果有配置,则返回此机器的计算机名。请注意,主机名不一定具有全局唯一性,尤其是如果它们是自动配置的。
该函数不保证返回的主机名是一个完全合格域名(FQDN)。为此,请使用QHostInfo将返回的名称解析为FQDN。
此函数返回的值与QHostInfo::localHostName()相同。
另请参阅
- 静态 machineUniqueId()#
- 返回类型:
如果可以确定,则返回本机唯一的ID。如果无法确定唯一的ID,则此函数返回空字节数组。与machineHostName()相比,此函数返回的值更有可能是全局唯一的。
唯一ID在网络操作中非常有用,可以用来在较长的时间内识别本机,例如当IP地址可能发生变化或者本机可能拥有多个IP地址时。例如,当与服务器通信或将特定于设备的 数据存储在共享网络存储中时,可以使用该ID。
请注意,在某些系统上,此值将在重启后保持不变,而在某些系统上则不会。应用程序不应在没有验证操作系统功能的情况下盲目依赖这一事实。特别是在Linux系统上,此ID通常是永久的,并且与D-Bus机器ID相匹配,但不包括没有自己存储的节点(副本节点)。
- static prettyProductName()#
- 返回类型:
str
返回productType()和productVersion()的更漂亮形式,包含操作系统类型、代码名和其他信息。此函数的结果适合向用户显示,但不适合长期存储,因为字符串可能会随着Qt的更新而更改。
如果productType()是“未知”,则此函数将使用kernelType()和kernelVersion()函数。
- static productType()#
- 返回类型:
str
返回运行应用程序的操作系统产品名称。如果应用程序在某类模拟或虚拟化层上运行(如Unix系统上的WINE),则此函数将检查模拟/virtualization层。
该函数返回的值是稳定的,并且不会随时间而改变,因此应用程序可以将返回值作为标识符使用,但可能会有新的操作系统类型被添加。
Linux 和 Android 注意:对于运行 Android 用户空间的 Linux 系统,包括在 Bionic 库中使用的情况,该函数返回“android”。对于所有其他 Linux 系统,无论使用的是哪个 C 库,它都试图确定发行版名称,并返回该名称。如果确定发行版名称失败,则返回“未知”。
macOS 注意:对于所有 macOS 系统,无论苹果的命名约定如何,该函数都返回“macos”。在 Qt 5 中,它返回“osx”,同样无论苹果的命名约定如何。
Darwin、iOS、tvOS 和 watchOS 注意:对于 iOS 系统,该函数返回“ios”,对于 tvOS 系统,返回“tvos”,对于 watchOS 系统,返回“watchos”,如果无法确定系统,则返回“darwin”。
FreeBSD 注意:对于 Debian/kFreeBSD,该函数返回“debian”,否则返回“未知”。
Windows 注意:该函数返回“windows”
对于其他类 Unix 系统,该函数通常返回“未知”。
- static productVersion()#
- 返回类型:
str
以字符串形式返回操作系统的产品版本。如果无法确定版本,则该函数返回“未知”。
在那些系统上,它将返回 Android、iOS、macOS、Windows 的完整产品版本。
典型返回值包括(注意:列表不全面)
“12”(Android 12)
“36”(Fedora 36)
“15.5”(iOS 15.5)
“12.4”(macOS Monterey)
“22.04”(Ubuntu 22.04)
“8.6”(watchOS 8.6)
“11”(Windows 11)
“Server 2022”(Windows Server 2022)
在 Linux 系统上,它将尝试确定发行版版本并返回该信息。在 Debian/kFreeBSD 上也执行此操作,因此在这种情况下该函数将返回 Debian 版本。
在所有其他类 Unix 系统上,该函数始终返回“未知”。
注意
该函数返回的版本字符串不保证可排序。在 Linux 上,发行版的版本可能会意外跳变,请参考发行版的文档中的版本策略。