在软件开发过程中,有时我们需要获取操作系统的一些基本信息,比如操作类型类型,版本号等,Qt的QSysInfo类可以获取这些信息,下面介绍一些常用API
机型启动的唯一ID, window11返回空字符串,Linux和Apple操作系统有返回值
QByteArray bootUniqueId();
返回编译Qt的完整体系结构字符串。此字符串用于识别不同的、不兼容的生成。例如,它可以用作从服务器请求升级包的标识符。
QString buildAbi();
编译时的CPU架构
QString buildCpuArchitecture();
当前系统的CPU架构
QString currentCpuArchitecture();
内核类型
QString kernelType();
内核版本
QString kernelVersion();
主机名
QString machineHostName();
机器唯一ID
QByteArray machineUniqueId();
返回完整的系统产品信息 productType + productVersion
QString prettyProductName();
系统的产品类型
QString productType();
系统的产品版本
QString productVersion();
完整代码如下:
void Dialog::slotGetSysInfo()
{
QSysInfo sysInfo;
QByteArray bootUniqueId = sysInfo.bootUniqueId(); //机型启动的唯一ID, window11返回空字符串,Linux和Apple操作系统有返回值
QString buildAbi = sysInfo.buildAbi(); //返回编译Qt的完整体系结构字符串。此字符串用于识别不同的、不兼容的生成。例如,它可以用作从服务器请求升级包的标识符。
QString buildCpuArchitecture = sysInfo.buildCpuArchitecture(); //编译时的CPU架构
QString currentCpuArchitecture = sysInfo.currentCpuArchitecture(); //当前系统的CPU架构
QString kernelType = sysInfo.kernelType(); //内核类型
QString kernelVersion = sysInfo.kernelVersion(); //内核版本
QString machineHostName = sysInfo.machineHostName(); //主机名
QByteArray machineUniqueId = sysInfo.machineUniqueId(); //机器唯一ID
QString prettyProductName = sysInfo.prettyProductName(); //返回完整的系统产品信息 productType + productVersion
QString productType = sysInfo.productType(); //系统的产品类型
QString productVersion = sysInfo.productVersion(); //系统的产品版本
QString strInfo = QString("bootUniqueId=================%1\nbuildAbi=====================%2\nbuildCpuArchitecture=========%3\n"
"currentCpuArchitecture=======%4\nkernelType===================%5\nkernelVersion================%6\n"
"machineHostName==============%7\nmachineUniqueId==============%8\nprettyProductName============%9\n"
"productType==================%10\nproductVersion===============%11")
.arg(QString(bootUniqueId)).arg(buildAbi).arg(buildCpuArchitecture)
.arg(currentCpuArchitecture).arg(kernelType).arg(kernelVersion).arg(machineHostName)
.arg(QString(machineUniqueId)).arg(prettyProductName).arg(productType).arg(productVersion);
ui->textEdit->setText(strInfo);
}
运行结果:
Mac运行结果: