对于其他重复的帖子感到抱歉。我被提到的那个帮助了很多,但它没有编译。
QProcess *proc = new QProcess;
connect(proc, SIGNAL(readyRead()), this, SLOT(updateText()));
proc->start("pathToScript");
第二行给了我这个错误,
error: expected constructor, destructor, or type conversion before '(' token
第三个给了我这个,
error: 'proc' does not name a type
编辑:我的其余代码。
ThiWindow.h:
#ifndef THIWINDOW_H
#define THIWINDOW_H
#include <QMainWindow>
namespace Ui {
class ThiWindow;
}
class ThiWindow : public QMainWindow
{
Q_OBJECT
public:
explicit ThiWindow(QWidget *parent = 0);
~ThiWindow();
signals:
void readyRead();
private slots:
void updateText();
private:
Ui::ThiWindow *ui;
};
ThiWindow.cpp:
#endif // THIWINDOW_H
#include "thiwindow.h"
#include "ui_thiwindow.h"
#include <QProcess>
QProcess *proc = new QProcess;
connect(proc, SIGNAL(readyRead()), this, SLOT(updateText()));
proc->start("pathToScript");
ThiWindow::ThiWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::ThiWindow)
{
ui->setupUi(this);
}
ThiWindow::~ThiWindow()
{
delete ui;
}
void ThiWindow::updateText()
{
QString appendText(proc->readAll());
ui->textEdit->append(appendText);
}
和main.cpp:
#include "mainwindow.h"
#include "mainwindow.cpp"
#include <QApplication>
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow qw;
qw.show();
return a.exec();
}
请帮助,
Brooks Rady
答案 0 :(得分:0)
将QProcess * proc放入mainwindow.h的私有部分。之后你需要在MainWindow构造函数中分配内存(proc = new QProcess;)以及你需要在构造函数中实现的SIGNAL / SLOT。 抱歉我的英文!
答案 1 :(得分:0)
MOC文件生成将您的类定义为启用Qt的对象。
这允许您使用没有名称空间前缀的函数connect
。您在“通用区域”中使用它,其中未定义connect
对象,这就是您收到(
错误的原因。
如果我是你,我会搬家
QProcess *proc = new QProcess;
connect(proc, SIGNAL(readyRead()), this, SLOT(updateText()));
proc->start("pathToScript");
在你的构造函数中。它应该可以工作。