#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个
3星 · 超过75%的资源 需积分: 37 319 下载量 162 浏览量
2018-05-09
10:46:04
上传
评论 5
收藏 120KB ZIP 举报
温馨提示
使用QT C++ 检测系统的计算机名称、cpu、显卡、内存、操作系统、几个屏幕以及每个屏幕的分辨率、硬盘信息、IP、MAC地址、公网IP、以及是否能够联网等信息 详情与效果图见博客:https://blog.csdn.net/xiezhongyuan07/article/details/80249626 没有积分的小伙伴,评论留下邮箱,免费发送!
资源推荐
资源详情
资源评论
收起资源包目录
check.zip (31个子文件)
check
info.h 2KB
clickablelabel.h 874B
commonmovedialog.cpp 922B
checkdlg.ui 40KB
images
pass.png 1KB
close.png 1KB
faile.png 1KB
title.png 1KB
unchecked.png 1KB
close1.png 1KB
uncheckedDisable.png 1022B
logo.png 4KB
min1.png 1KB
min.png 972B
checking.png 1KB
checkedDisable.png 1KB
bck.png 84KB
checked.png 1KB
warning.png 1KB
itemdelegate.h 374B
Check.pro 1KB
netserver.h 1KB
commonmovedialog.h 524B
info.cpp 15KB
itemdelegate.cpp 4KB
checkdlg.cpp 24KB
checkdlg.h 2KB
main.cpp 182B
netserver.cpp 2KB
check.qrc 969B
clickablelabel.cpp 327B
共 31 条
- 1
漫步繁华街
- 粉丝: 603
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页