class QSysInfo#

QSysInfo 类提供了关于系统的信息。更多

概述#

静态函数#

注意

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

详细描述#

  • WordSize指定了应用程序编译平台上的指针大小。

  • ByteOrder指定了平台是大端还是小端。

某些常量仅在特定的平台上定义。您可以使用预处理器符号Q_OS_WINQ_OS_MACOS来测试应用程序是否在Windows或macOS下编译。

另请参阅

QLibraryInfo

Sizes#

此枚举提供了关于底层架构使用的数据结构大小的特定平台信息。

常量

描述

QSysInfo.WordSize

应用程序编译平台上的指针大小的位数(32或64)。

Endian#

常量

描述

QSysInfo.BigEndian

大端字节序(也称为网络字节序)

QSysInfo.LittleEndian

小端字节序

QSysInfo.ByteOrder

等于BigEndian或LittleEndian,取决于平台的字节序。

静态 bootUniqueId()#
返回类型:

QByteArray

如果可以确定,返回该机器启动的唯一ID。如果无法确定唯一的ID,则此函数返回一个空字节数组。此值预计在每次启动后都会更改,并可被视为全局唯一的。

此函数目前仅在Linux和Apple操作系统上实现。

另请参阅

machineUniqueId()

静态 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”。

另请参阅

buildCpuArchitecture()

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()

静态 machineUniqueId()#
返回类型:

QByteArray

如果可以确定,则返回本机唯一的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 上,发行版的版本可能会意外跳变,请参考发行版的文档中的版本策略。