QSysInfo获取操作系统的相关信息
来源:互联网 发布:古剑奇谭ol 知乎 编辑:程序博客网 时间:2024/06/07 14:21
QSysInfo类可以为我们提供一些有关当前系统的底层信息。其中包括:
- WordSize:代表编译应用程序的当前系统的指针大小
- ByteOrder:代表当前系统是大端还是小端
- WindowsVersion:代表当前运行应用程序的Windows系统的版本
- MacintoshVersion:代表当前运行应用程序的Mac系统的版本
注意,该类中所提供的常量定义,有一些只在特定平台上有效。所以,我们在使用时,可以先使用Qt预定义的符号Q_OS_WIN和Q_OS_OSX来判断一下,当前应用程序是在哪个系统下编译的。
至于该类的使用方法,和我们之前讲过的QStorageInfo类似,其成员函数均为静态方法,我们可以很方便的使用。
QString QSysInfo::buildAbi()返回编译Qt程序的平台的架构全信息。其又三个或以上的部分组成,有“-”分隔。具体信息如下:
CPU Architecture例如,"arm","i386","mips","x86_64"Endianness"little_endian" 或 "big_endian"Word size"llp64"(Windows 64-bit),"lp64"(Unix 64-bit),"ilp32"(32-bit)(Optional)ABI零个或多个该平台上不同的ABI
QString QSysInfo::buildCpuArchitecture()返回编译Qt程序的CPU架构。注意,这可能和Qt程序实际运行的CPU不同,因为可能存在仿真层或该CPU支持多个架构。
通常的返回值如下:
- arm
- arm64
- i386
- ia64
- mips
- mips64
- power
- power64
- sparc
- sparcv9
- x86_64
QString QSysInfo::currentCpuArchitecture()返回Qt程序当前所运行在的CPU架构。和上面的那个函数相对应。
QString QSysInfo::kernelType()QString QSysInfo::kernelVersion()返回编译Qt程序的操作系统的内核的类型和版本号。在Windows平台上,该函数返回"wince" 或者 "winnt" 及其版本;在Unix平台上,该函数的返回值和命令 "uname -rs"的返回值一样。
QString QSysInfo::prettyProductName()QString QSysInfo::productType()QString QSysInfo::productVersion()返回当前运行Qt程序的操作系统的产品名称和产品的版本。
下面我们就以当前的Windows系统为例,来说明一下这些函数的使用及其含义:
#include <QCoreApplication>#include <QSysInfo>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug() << "WindowsVersion: " << QSysInfo::WindowsVersion; qDebug() << "buildAbi: " << QSysInfo::buildAbi(); qDebug() << "buildCpuArchitecture: " << QSysInfo::buildCpuArchitecture(); qDebug() << "currentCpuArchitecture: " << QSysInfo::currentCpuArchitecture(); qDebug() << "kernelType: " << QSysInfo::kernelType(); qDebug() << "kernelVersion: " << QSysInfo::kernelVersion(); qDebug() << "machineHostName: " << QSysInfo::machineHostName(); qDebug() << "prettyProductName: " << QSysInfo::prettyProductName(); qDebug() << "productType: " << QSysInfo::productType(); qDebug() << "productVersion: " << QSysInfo::productVersion(); qDebug() << "Windows Version: " << QSysInfo::windowsVersion(); return a.exec();}输出结果如下图:
我们还分析一下各个输出结果的含义,有助于我们理解上面讲到的函数的意思:
WindowsVersion: 192,十进制的192,转换为16进制就是0xc0,再参照QSysInfo类中WinVersion枚举类型的常量定义可知,其对应的操作系统恰好就是Windows 10.
buildAbi:我当前使用的Qt是Qt5.7 mingw版本,再结合Windows x86结构总是小端,故输出结果为"i386-little_endian-ilp32"
buildCpuArchitecture:分析如上
currentCpuArchitecture:我当前系统是Windows 64位 专业版,故输出 "x86_64"
kernelType:众所周知,桌面端winnt,移动端和嵌入式wince
kernelVersion:刚才说了,Windows 10
machineHostName:就是计算机名称而已
prettyProductName、productType、produceVersion:产品的版本类型,Windows 10
我上面对每个函数解释的不同,请大家对照着输出结果再理解一下每一个函数的意思,也可以在自己电脑上运行该程序,查看相应的输出结果。
0 0
- QSysInfo获取操作系统的相关信息
- QSysInfo获取操作系统的相关信息
- 获取Linux操作系统相关信息的命令
- java获取操作系统相关信息
- Java获取操作系统相关信息
- VC获取操作系统相关信息
- C# 获取操作系统相关信息
- java API获取操作系统相关信息
- java android 获取手机操作系统相关信息
- JAVA获取操作系统的信息
- 显示和操作系统相关的许多信息
- 显示linux操作系统的相关信息
- 查看linux 操作系统信息的相关命令
- C# 获取操作系统.NET版本等相关信息
- 获取网卡的相关信息
- 获取网卡的相关信息
- 获取手机的相关信息
- 获取主机的相关信息
- 输入两个正整数,求它们的最大公约数和最小公倍数。
- Hadoop集群datanode磁盘不均衡的解决方案
- python基础教程学习笔记 第三章 字符串
- Linux运维笔记-文档总结-管理网络
- 深入理解Java:注解(Annotation)自定义注解入门
- QSysInfo获取操作系统的相关信息
- window下如何通过跳转机来访问
- vps推荐vultr
- (七)ROS使用OpenCV读取图像并发布图像消息在rviz中显示
- 欢迎使用CSDN-markdown编辑器
- ubuntu环境下下载FFMpeg(1)
- SSM框架-----------SpringMVC+Spring+Mybatis框架整合详细教程
- go语言xml文件的解析及生成代码示例
- java基础