使用QProcess读取系统指令的返回的系统信息
我们可以使用QProcess的部分接口来读取系统的返回值。
需要用到的接口为readAllStandardOutput(),读取QProcess指令start()的返回值。
如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_process = new QProcess(this);
connect(m_process,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(slotreadbuff(int,QProcess::ExitStatus)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_lsbtn_clicked()
{
QString cmd = "lscpu";
m_process->start(cmd);
m_process->waitForFinished(); // 阻塞进程完成后返回,默认等待时间30s
qDebug()<<cmd<<m_result;
}
void MainWindow::on_ifconfigbtn_clicked()
{
QString cmd = "ifconfig";
m_process->start(cmd);
m_process->waitForFinished();
qDebug()<<cmd<<m_result;
}
void MainWindow::slotreadbuff(int index,QProcess::ExitStatus exitstatus)
{
m_result = m_process->readAllStandardOutput(); //读取进程通道的返回值。
}