代码拉取完成,页面将自动刷新
#include "systemtool.h"
#include "ui_systemtool.h"
SystemTool::SystemTool(QWidget *parent) :
QWidget(parent),
ui(new Ui::SystemTool)
{
ui->setupUi(this);
m_Process = new QProcess;
connect(m_Process,SIGNAL(readyRead()),this,SLOT(ShowMes()));
connect(m_Process,SIGNAL(errorOccurred(QProcess::ProcessError)),\
this,SLOT(errorOccurred(QProcess::ProcessError)));
}
SystemTool::~SystemTool()
{
delete ui;
}
void SystemTool::Execute(QString Cmd)
{
if(m_Process->state() == QProcess::Running)
{
m_Process->kill();
m_Process->waitForFinished();
}
ui->OutputBrower->clear();
ui->OutputBrower->setText(Cmd);
m_Process->start(Cmd);
}
void SystemTool::on_CmdRun_clicked()
{
Execute(ui->CmdLine->text());
}
void SystemTool::ShowMes()
{
ui->OutputBrower->append(m_Process->readAll());
}
void SystemTool::errorOccurred(QProcess::ProcessError error)
{
switch (error) {
case QProcess::FailedToStart:
ui->OutputBrower->append("启动失败");
break;
case QProcess::Crashed:
ui->OutputBrower->append("Crashed");
break;
case QProcess::Timedout:
ui->OutputBrower->append("超时");
break;
case QProcess::ReadError:
ui->OutputBrower->append("读错误");
break;
case QProcess::WriteError:
ui->OutputBrower->append("写错误");
break;
case QProcess::UnknownError:
ui->OutputBrower->append("未知错误");
break;
}
}
void SystemTool::on_ifconfigCmd_clicked()
{
Execute("ifconfig");
}
void SystemTool::on_PingGatewayCmd_clicked()
{
QString Ip = GetGateWay();
if(Ip.size() == 0)
{
ui->OutputBrower->setText("网关地址为空");
}
else {
Execute(QString("ping -c 5 ") + Ip);
}
}
void SystemTool::on_PingIp1Cmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_CAMERA_IP1);
Execute(QString("ping -c 5 ") + Ip);
}
void SystemTool::on_PingIp2Cmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_CAMERA_IP2);
Execute(QString("ping -c 5 ") + Ip);
}
void SystemTool::on_PingIp3Cmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_CAMERA_IP3);
Execute(QString("ping -c 5 ") + Ip);
}
void SystemTool::on_PingDomainCmd_clicked()
{
QString Ip = GetDns();
if(Ip.size() == 0)
{
ui->OutputBrower->setText("域名地址为空");
}
else {
Execute(QString("ping -c 5 ") + Ip);
}
}
void SystemTool::on_PingCloudCmd_clicked()
{
QString Ip = DataDictionary::GetInstance()->GetSystemData(SYS_SYNC_FACEID_HOST);
Execute(QString("ping -c 5 ") + Ip);
}
QStringList SystemTool::GetNetInfo()
{
#define NET_INTERFACE_PATH "/etc/network/interfaces"
QStringList RNetInfoList;
QFile *NetFile = new QFile(NET_INTERFACE_PATH);
if(NetFile->open(QIODevice::ReadWrite))
{
QByteArray Info = NetFile->readAll();
qDebug() << "INFO : " << Info;
QString SInfo = QString(Info);
QStringList NetInfoList = SInfo.split("auto");
foreach(QString s,NetInfoList)
{
while(s[0] == '\n')
{
s.remove(0,1);
}
if(s.isEmpty())
continue;
if(s[0] != '#')
RNetInfoList += "auto" + s;
}
}
else {
qDebug() << NetFile->errorString();
}
NetFile->close();
qDebug() << RNetInfoList;
return RNetInfoList;
}
QString SystemTool::GetGateWay()
{
QStringList NetInfo = GetNetInfo();
QString GateWay;
GateWay.clear();
QStringList Info = NetInfo.filter("eth0");
if(Info.count())
{
QString s = Info[0];
QStringList list = Info[0].split("\n");
QStringList g = list.filter("gateway");
if(g.count())
{
QStringList s = g[0].split(" ");
if(s.count() == 2)
GateWay= s[1];
else
GateWay=g[0];
qDebug() << GateWay;
}
else
{
GateWay.clear();
}
}
return GateWay;
}
QString SystemTool::GetDns()
{
QStringList NetInfo = GetNetInfo();
QString Dns;
Dns.clear();
QStringList Info = NetInfo.filter("eth0");
if(Info.count())
{
QString s = Info[0];
QStringList list = Info[0].split("\n");
QStringList g = list.filter("dns");
if(g.count())
{
QStringList s = g[0].split(" ");
if(s.count() == 2)
Dns = s[1];
else
Dns = g[0];
qDebug() << Dns;
}
else
{
Dns.clear();
}
}
return Dns;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。