需求
  使用Qt软件开发一个检测cpu温度的功能。
  兼容windows、linux,国产麒麟系统(同为linux)
Demo
  windows上运行(需要管理员权限):
  
  国产麒麟操作上运行(需要管理员权限):
  
功能描述 v1.1.0
windows上定时检测输出cpu温度。
linux上定时检测输出cpu温度。
国产银河麒麟操作系统上输出cpu温度。
模块化部署
关键源码
#ifndef LINUX
    QString cmd = QString("wmic /namespace:\\\\root\\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature");
    QProcess process;
    process.start(cmd);
    process.waitForFinished();
    QString result = process.readAllStandardOutput();
    LOG << result;
    result = result.replace("\r", "");
    LOG << result;
    QStringList list = result.split("\n", QString::SkipEmptyParts);
    LOG << list;
    bool ok = false;
    int t = 0;
    for(int index = 0; index < list.size(); index++)
    {
        QString str = list.at(index);
        str = str.trimmed();
        LOG << str;
        t = str.toInt(&ok);
        if(ok)
        {
            break;
        }
    }
    // false失败
    if(!ok)
    {
        emit signal_detectTemperature(false, _t);
        // 下一次检测
        QTimer::singleShot(_intervalMs, this, SLOT(slot_loop()));
        return;
    }
    // 转换
    _t = (t - 2732) * 1.0f / 10;
    // 抛出温度
    emit signal_detectTemperature(true, _t);
#else
    // sensors,有些电脑可能没安装,安装方法如下:
    // sudo apt-get install lm-sensors hddtemp
    // sudo sensors-detect
    // sensors
    QProcess process;
    process.start("sensors");
    process.waitForFinished();
    QString result = process.readAllStandardOutput();
    LOG << result;
    result = result.replace("\r","");
    LOG << result;
    bool ok = false;
    QStringList list = result.split("\n", QString::SkipEmptyParts);
    LOG << list;
#if 1
    for(int index = 0; index < list.size(); index++)
    {
        QString str = list.at(index);
        // 注意:
        //      1.虚拟机是无法获取温度的
        // Physical id 0: +39.0°C  (high = +80.0°C, crit = +100.0°C)
        // Core 0:        +33.0°C  (high = +80.0°C, crit = +100.0°C)
        // Core 1:        +35.0°C  (high = +80.0°C, crit = +100.0°C)
        // Core 2:        +36.0°C  (high = +80.0°C, crit = +100.0°C)
        // Core 3:        +39.0°C  (high = +80.0°C, crit = +100.0°C)
        if(str.contains(
文章来源 
 
                            