PySide6.QtCore.QSysInfo

class QSysInfo

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

概要

静态函数

注意

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

详细描述

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

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

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

另请参阅

QLibraryInfo

class Sizes

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

常量

描述

QSysInfo.WordSize

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

class Endian

常量

描述

QSysInfo.BigEndian

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

QSysInfo.LittleEndian

小端字节序

QSysInfo.ByteOrder

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

static bootUniqueId()
Return type:

QByteArray

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

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

另请参阅

machineUniqueId()

static buildAbi()
Return type:

字符串

返回Qt编译所用的完整架构字符串。此字符串对于识别不同且不兼容的构建非常有用。例如,它可以作为标识符从服务器请求升级包。

此函数返回的值保持如下稳定:结果的强制组件在Qt的未来版本中不会更改,但可能会添加可选的后缀。

返回值由三个或更多部分组成,用短横线(“-”)分隔。它们是:

组件

CPU架构

buildCpuArchitecture()相同,例如“arm”、“i386”、“mips”或“x86_64”

字节序

“little_endian” 或 “big_endian”

字长

无论是32位还是64位应用程序。可能的值为:“llp64”(Windows 64位),“lp64”(Unix 64位),“ilp32”(32位)

(可选) ABI

零个或多个组件,用于识别此架构中可能存在的不同ABI。目前,Qt为ARM和MIPS处理器提供了可选的ABI组件:一个组件是主ABI(如“eabi”、“o32”、“n32”、“o64”);另一个是调用约定是否使用硬件浮点寄存器(存在“hardfloat”)。

此外,如果Qt配置为-qreal float,则ABI选项标签“qreal_float”将存在。如果Qt配置为另一种类型作为qreal,则该类型在“qreal_”之后存在,所有非字母和数字的字符由下划线转义,后跟两个十六进制数字。例如,-qreal long double变为“qreal_long_20double”。

另请参阅

buildCpuArchitecture()

static buildCpuArchitecture()
Return type:

字符串

返回Qt编译时所针对的CPU架构,以文本格式表示。请注意,如果存在模拟层或CPU支持多种架构(如支持i386应用程序的x86-64处理器),这可能与应用程序实际运行的CPU不匹配。要检测这一点,请使用currentCpuArchitecture()

此函数返回的值是稳定的,不会随时间变化,因此应用程序可以依赖返回的值作为标识符,但随着时间的推移可能会添加新的CPU类型。

典型的返回值包括(注意:列表并非详尽无遗):

  • “手臂”

  • “arm64”

  • “i386”

  • “ia64”

  • “mips”

  • “mips64”

  • “power”

  • “power64”

  • “sparc”

  • “sparcv9”

  • “x86_64”

static currentCpuArchitecture()
Return type:

字符串

返回应用程序运行的CPU架构,以文本格式。请注意,此函数依赖于操作系统报告的内容,如果操作系统隐藏了该信息或无法提供,则可能无法检测到实际的CPU架构。例如,在64位CPU上运行的32位操作系统通常无法确定CPU实际上能够运行64位程序。

此函数返回的值大多是稳定的:将尝试确保它们随时间保持恒定,并与QSysInfo::builldCpuArchitecture()返回的值匹配。然而,由于使用的操作系统函数的性质,可能存在差异。

典型的返回值包括(注意:列表并非详尽无遗):

  • “手臂”

  • “arm64”

  • “i386”

  • “ia64”

  • “mips”

  • “mips64”

  • “power”

  • “power64”

  • “sparc”

  • “sparcv9”

  • “x86_64”

static kernelType()
Return type:

字符串

返回Qt编译所针对的操作系统内核类型。这也是应用程序运行的内核,除非主机操作系统运行某种形式的兼容性或虚拟化层。

此函数返回的值是稳定的,不会随时间变化,因此应用程序可以依赖返回的值作为标识符,但随着时间的推移可能会添加新的操作系统内核类型。

在Windows上,此函数返回Windows内核的类型,例如“winnt”。在Unix系统上,它返回与uname -s(小写)的输出相同的内容。

注意

此函数可能返回令人惊讶的值:对于所有运行Linux(包括Android)的操作系统,它返回“linux”;对于所有运行QNX的操作系统,它返回“qnx”;对于Debian/kFreeBSD,它返回“freebsd”;对于macOS和iOS,它返回“darwin”。有关应用程序运行的产品类型的信息,请参见productType()

static kernelVersion()
Return type:

字符串

返回操作系统内核的发布版本。在Windows上,它返回NT内核的版本。在包括Android和macOS在内的Unix系统上,它返回与uname -r命令相同的值。在VxWorks上,它返回kernelVersion()报告的字符串的数字部分。

如果无法确定版本,此函数可能返回一个空字符串。

static machineHostName()
Return type:

字符串

返回此机器的主机名(如果已配置)。请注意,主机名不能保证全局唯一,特别是如果它们是自动配置的。

此函数不保证返回的主机名是完全限定域名(FQDN)。为此,请使用QHostInfo将返回的名称解析为FQDN。

此函数返回与 QHostInfo::localHostName() 相同的内容。

另请参阅

machineUniqueId()

static machineUniqueId()
Return type:

QByteArray

返回此机器的唯一ID,如果可以确定的话。如果无法确定唯一ID,此函数将返回一个空的字节数组。与machineHostName()不同,此函数返回的值可能是全局唯一的。

在网络操作中,唯一ID在长时间内识别此机器非常有用,因为IP地址可能会改变,或者此机器可能有多个IP地址。例如,ID可以在与服务器通信时或在共享网络存储中存储设备特定数据时使用。

请注意,在某些系统上,此值将在重启后保持不变,而在其他系统上则不会。应用程序不应盲目依赖这一事实,而应验证操作系统的能力。特别是在Linux系统上,此ID通常是永久的,并且与D-Bus机器ID匹配,除非是没有自己存储的节点(复制节点)。

static prettyProductName()
Return type:

字符串

返回productType()productVersion()的更美观形式,包含操作系统类型、代号和其他信息等标记。此函数的结果适合显示给用户,但不适合长期存储,因为字符串可能会随着Qt的更新而改变。

如果 productType() 是“unknown”,此函数将改为使用 kernelType()kernelVersion() 函数。

static productType()
Return type:

字符串

返回此应用程序运行的操作系统的产品名称。如果应用程序运行在某种模拟或虚拟化层上(例如Unix系统上的WINE),此函数将检查模拟/虚拟化层。

此函数返回的值是稳定的,不会随时间变化,因此应用程序可以依赖返回的值作为标识符,但随着时间的推移可能会添加新的操作系统类型。

Linux 和 Android 注意: 对于运行 Android 用户空间的 Linux 系统,特别是使用 Bionic 库时,此函数返回“android”。对于所有其他 Linux 系统,无论使用何种 C 库,它都会尝试确定发行版名称并返回该名称。如果确定发行版名称失败,则返回“unknown”。

macOS 注意: 此函数对所有 macOS 系统返回“macos”,无论 Apple 的命名约定如何。以前,在 Qt 5 中,它返回“osx”,同样不考虑 Apple 的命名约定。

Darwin、iOS、tvOS 和 watchOS 注意:此函数对于 iOS 系统返回“ios”,对于 tvOS 系统返回“tvos”,对于 watchOS 系统返回“watchos”,如果无法确定系统则返回“darwin”。

FreeBSD 注意: 此函数对于 Debian/kFreeBSD 返回“debian”,否则返回“unknown”。

Windows 注意: 此函数返回“windows”

VxWorks 注意: 此函数返回“vxworks”

对于其他Unix类型的系统,此函数通常返回“unknown”。

static productVersion()
Return type:

字符串

以字符串形式返回操作系统的产品版本。如果无法确定版本,此函数返回“unknown”。

它将返回这些系统上的Android、iOS、macOS、VxWorks、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)

  • “24.03” (VxWorks 7 - 24.03)

在Linux系统上,它将尝试确定发行版版本并返回该版本。这在Debian/kFreeBSD上也是如此,因此在这种情况下,此函数将返回Debian版本。

在所有其他类Unix系统中,此函数始终返回“unknown”。

注意

此函数返回的版本字符串不保证是可排序的。在Linux上,发行版的版本可能会意外跳跃,请参考发行版的文档了解版本控制实践。