QProcess类的作用是启动一个外部的程序并与之交互。为了更好的理解此类,下面举一个例子:
void Window::getInitFlow()
{
QProcess p(NULL);
p.start("netstat", QStringList()<<"-e");
p.waitForStarted();
p.waitForFinished();
QStringList l;
l<<QString::fromLocal8Bit(p.readAllStandardOutput());
qDebug() << l;
foreach (QString s, l)
{
QStringList sss = s.remove("接口统计").remove("接收的").remove("发送的").remove("字节").remove("单播数据包").remove("非单播数据包").remove("丢弃").remove("错误").remove("未知协议").remove("非").split(" ");
int i = 0;
foreach (QString sx, sss)
{
if(sx.trimmed()== "") continue;
qDebug() << sx.trimmed();
if(i == 0)
{
preData.down_flow = sx.trimmed().toDouble();
qDebug() << "sx.trimmed().toInt()"<<sx.trimmed();
}
else if(i == 1)
{
preData.up_flow = sx.trimmed().toDouble();
qDebug() << "sx.trimmed().toInt()"<<sx.trimmed();
break;
}
i++;
}
qDebug() << "QString::number(preData.down_flow)" <<QString::number(preData.down_flow)
<< "QString::number(preData.up_flow)" << QString::number(preData.up_flow);
}
p.close();
}