进程
来源:互联网 发布:淘宝客优惠券网站 编辑:程序博客网 时间:2024/05/18 03:08
widget.h
#include <QMainWindow>#include <QProcess>namespace Ui { class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private slots: void on_pushButton_clicked(); void showResult(); void showState(QProcess::ProcessState); void showError(); void showFinished(int, QProcess::ExitStatus);private: Ui::MainWindow *ui; QProcess myProcess;};
widget.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); connect(&myProcess, SIGNAL(readyRead()), this, SLOT(showResult())); connect(&myProcess, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(showState(QProcess::ProcessState))); connect(&myProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(showError())); connect(&myProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(showFinished(int, QProcess::ExitStatus)));}MainWindow::~MainWindow(){ delete ui;}// 启动进程按钮void MainWindow::on_pushButton_clicked(){// QString program = "cmd.exe";// QStringList arguments;// arguments << "/c dir&pause";// myProcess.start(program, arguments); QString program = "mac.bat"; QStringList arguments; arguments << ""; myProcess.start(program, arguments); int ret = system("net localgroup"); qDebug() << ret;}// 显示运行结果void MainWindow::showResult(){ qDebug() << "showResult: " << endl << QString(myProcess.readAll()).toStdString().c_str();}// 显示状态变化void MainWindow::showState(QProcess::ProcessState state){ qDebug() << "showState: "; if (state == QProcess::NotRunning) { qDebug() << "Not Running"; } else if (state == QProcess::Starting) { qDebug() << "Starting"; } else { qDebug() << "Running"; }}// 显示错误void MainWindow::showError(){ qDebug() << "showError: " << endl << myProcess.errorString();}// 显示结束信息void MainWindow::showFinished(int exitCode, QProcess::ExitStatus exitStatus){ qDebug() << "showFinished: " << endl << exitCode << exitStatus;}