我有一個小程序的問題(我是一個初學者與c + +和qt)。 開啓按鈕時,它會用qprocess啓動一個cli應用程序,只要cli應用程序將其寫入標準輸出或標準錯誤,輸出應該顯示在文本字段中。得到qprocess輸出在插槽
我讀到,它是一個好主意,使用信號和插槽,但它不工作。
編譯器會引發在我插槽getOutput()「過程」對象未聲明的錯誤(C2065)
這裏是代碼。
processgui.cpp:
#include "processgui.h"
#include "ui_processgui.h"
#include <QProcess>
processGui::processGui(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::processGui)
{
ui->setupUi(this);
}
processGui::~processGui()
{
delete ui;
}
void processGui::on_startProcess_clicked() {
QProcess *process = new QProcess(this);
QString program = "tracert";
QString arguments = "";
process->setReadChannelMode(QProcess::MergedChannels);
process->start(program, QStringList() << arguments);
process->waitForStarted();
QObject::connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(getOutput()));
}
void processGui::getOutput() {
QByteArray strdata = process->readAllStandardOutput();
ui->textLog->append(strdata);
}
processgui.h:
#ifndef PROCESSGUI_H
#define PROCESSGUI_H
#include <QMainWindow>
namespace Ui {
class processGui;
}
class processGui : public QMainWindow
{
Q_OBJECT
public:
explicit processGui(QWidget *parent = 0);
~processGui();
private slots:
void on_startProcess_clicked();
void getOutput();
private:
Ui::processGui *ui;
};
#endif // PROCESSGUI_H
在此先感謝
謝謝。那樣做了。 – arkhon