#pragma execution_character_set("utf-8")
#include "checkdlg.h"
#include <info.h>
#include "ui_checkdlg.h"
#include "netserver.h"
#include <QtGui>
#include <QFileDialog>
#include <QJsonDocument>
#include <QVariantMap>
#include <QMessageBox>
#include <QTime>
CheckDlg::CheckDlg(QWidget *parent) :
CommonMoveDialog(parent),
ui(new Ui::CheckDlg),
m_successCount(0),
m_warningCount(0),
m_failedCount(0)
{
ui->setupUi(this);
initData();
initFrame();
connection();
}
CheckDlg::~CheckDlg()
{
delete ui;
}
void CheckDlg::initFrame()
{
this->resize(580, 380);
ui->allValueLabel->setText("0");
ui->passValueLabel->setText("0");
ui->warningValueLabel->setText("0");
ui->faileValueLabel->setText("0");
ui->finishedLabel->setVisible(false);
ui->saveBtn->setEnabled(false);
ui->uploadCheckBox->setEnabled(false);
ui->progressBar->setValue(0);
this->setWindowFlags(Qt::FramelessWindowHint);
ui->stackedWidget->setCurrentIndex(0);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0,QHeaderView::Fixed);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(1,QHeaderView::Fixed);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(2,QHeaderView::Stretch);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(3,QHeaderView::Fixed);
ui->tableWidget->horizontalHeader()->resizeSection(0, 20);
ui->tableWidget->horizontalHeader()->resizeSection(1, 55);
ui->tableWidget->horizontalHeader()->resizeSection(2, 80);
ui->tableWidget->horizontalHeader()->setSectionsClickable(false);
ui->tableWidget->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
m_pItemDelegate = new ItemDelegate();
ui->tableWidget->setItemDelegate(m_pItemDelegate);
int rowCount = m_itemNames.size();
ui->tableWidget->setRowCount(rowCount);
for(int i=0; i<rowCount; i++)
{
QString data;
QTableWidgetItem *item0 = new QTableWidgetItem();
item0->setData(Qt::UserRole, Item_Status_Waitting);
ui->tableWidget->setItem(i,1,item0);
data = m_listItemsData.at(i).key;
QTableWidgetItem *item1 = new QTableWidgetItem();
item1->setData(Qt::DisplayRole, data);
item1->setData(Qt::UserRole, Item_Status_Waitting);
ui->tableWidget->setItem(i,2,item1);
data = m_itemsStatus[m_listItemsData.at(i).status];
QTableWidgetItem *item2 = new QTableWidgetItem();
item2->setData(Qt::DisplayRole, data);
item2->setData(Qt::UserRole, Item_Status_Waitting);
ui->tableWidget->setItem(i,3,item2);
}
}
void CheckDlg::connection()
{
connect(ui->startCheckBtn, SIGNAL(clicked(bool)), this, SLOT(startChecking()));
connect(ui->allLabel, SIGNAL(clicked()), this, SLOT(allLableClicked()));
connect(ui->allValueLabel, SIGNAL(clicked()), this, SLOT(allLableClicked()));
connect(ui->passLabel, SIGNAL(clicked()), this, SLOT(passLableClicked()));
connect(ui->passValueLabel, SIGNAL(clicked()), this, SLOT(passLableClicked()));
connect(ui->warningLabel, SIGNAL(clicked()), this, SLOT(warnningLableClicked()));
connect(ui->warningValueLabel, SIGNAL(clicked()), this, SLOT(warnningLableClicked()));
connect(ui->faileLabel, SIGNAL(clicked()), this, SLOT(failLabelClicked()));
connect(ui->faileValueLabel, SIGNAL(clicked()), this, SLOT(failLabelClicked()));
}
void CheckDlg::initData()
{
m_itemNames.clear();
m_itemNames.append("CPU处理器");
m_itemNames.append("运行内存");
m_itemNames.append("操作系统");
m_itemNames.append("屏幕分辨率");
m_itemNames.append("磁盘空间");
m_itemNames.append("office");
m_itemNames.append("网络带宽");
m_itemsStatus.clear();
m_itemsStatus.append("等待检测");
m_itemsStatus.append("正在检测");
m_itemsStatus.append("通过");
m_itemsStatus.append("警告");
m_itemsStatus.append("未通过");
m_listItemsData.clear();
for(int i=0; i<m_itemNames.size(); i++)
{
itemData data;
data.key = m_itemNames.at(i);
data.status = ItemStatus::Item_Status_Waitting;
m_listItemsData.append(data);
}
}
void CheckDlg::getInfo()
{
QString machineName = Info::instance()->localmachineName();
ui->computerValueLabel->setText(machineName);
QString cpu = Info::instance()->cpuType();
ui->cpuValueLabel->setText(cpu);
QString strDcard = Info::instance()->dCard();
ui->dCardValueLabel->setText(strDcard);
QString disk = Info::instance()->disk();
ui->diskValueLabel->setText(disk);
QString mem = Info::instance()->memory();
ui->memValueLabel->setText(mem);
QString os = Info::instance()->osVersion();
ui->osValueLabel->setText(os);
QString screen = Info::instance()->screen();
ui->screenValueLabel->setText(screen);
int rowCount = ui->tableWidget->rowCount();
ui->allValueLabel->setText(QString("%1").arg(rowCount));
for(int i=0; i<m_listItemsData.length(); i++)
{
ItemStatus status;
QString describe;
if(m_listItemsData[i].key == "CPU处理器")
{
Info::instance()->checkCPU(status, describe);
}
else if(m_listItemsData[i].key == "运行内存")
{
Info::instance()->checkMemory(status, describe);
}
else if(m_listItemsData[i].key == "操作系统")
{
Info::instance()->checkOS(status, describe);
}
else if(m_listItemsData[i].key == "屏幕分辨率")
{
Info::instance()->checkScreen(status, describe);
}
else if(m_listItemsData[i].key == "磁盘空间")
{
Info::instance()->checkDisk(status, describe);
}
else if(m_listItemsData[i].key == "office")
{
Info::instance()->checkOffice(status, describe);
}
else if(m_listItemsData[i].key == "网络带宽")
{
Info::instance()->checkNet(status, describe);
}
m_listItemsData[i].status = status;
m_listItemsData[i].describe = describe;
int index = getRowIndex(m_listItemsData[i].key);
if(Item_Status_Success == status)
{
successByIndex(index);
}
else if(Item_Status_Warning == status)
{
warningOrFailedByIndex(index, Item_Status_Warning, describe);
}
else if(Item_Status_Failed == status)
{
warningOrFailedByIndex(index, Item_Status_Failed, describe);
}
int percent = (i+1) * 100 / m_listItemsData.length();
ui->progressBar->setValue(percent);
}
checkingFinished();
}
int CheckDlg::getRowIndex(const QString &key)
{
int currentRow = -1;
int rowCount = ui->tableWidget->rowCount();
for(int i=0; i<rowCount; i++)
{
QTableWidgetItem *item = ui->tableWidget->item(i, 2);
QString name = item->text();
if(key == name)
{
currentRow = i;
break;
}
}
return currentRow;
}
void CheckDlg::successByKey(const QString &key)
{
successByIndex(getRowIndex(key));
}
void CheckDlg::successByIndex(int index)
{
if(index >= 0 && index < ui->tableWidget->rowCount())
{
QTableWidgetItem *item1 = ui->tableWidget->item(index, 1);
item1->setData(Qt::UserRole, Item_Status_Success);
QTableWidgetItem *item2 = ui->tableWidget->item(index, 2);
item2->setData(Qt::UserRole, Item_Status_Success);
QTableWidgetItem *item3 = ui->tableWidget->item(index, 3);
item3->setData(Qt::DisplayRole, m_itemsStatus[Item_Status_Success]);
item3->setData(Qt::UserRole, Item_Stat
没有合适的资源?快使用搜索试试~ 我知道了~
QT C++检测计算机软硬件信息

共31个文件
png:15个
cpp:7个
h:6个


温馨提示
使用QT C++ 检测系统的计算机名称、cpu、显卡、内存、操作系统、几个屏幕以及每个屏幕的分辨率、硬盘信息、IP、MAC地址、公网IP、以及是否能够联网等信息 详情与效果图见博客:https://blog.csdn.net/xiezhongyuan07/article/details/80249626 没有积分的小伙伴,评论留下邮箱,免费发送!
资源推荐
资源详情
资源评论













收起资源包目录


































共 31 条
- 1

漫步繁华街
- 粉丝: 592
- 资源: 29
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
- 3
前往页