0

我需要向QPlainTextEdit我的 C++ 类发送引用,Analizador以便从我的类中添加行QPlainTextEdit。我将包含添加<QPlainTextEdit>到类中,QPlainTextEdit从图形界面创建并像那样调用构造函数

Analizador *anal=new Analizador(ui->textProgres);

构造函数是:

Analizador(QPlainTextEdit* text);

编译器抛出错误:

mainwindow.cpp:23:错误:未定义对 `Analizador::Analizador(QPlainTextEdit*)' 的引用

所以我猜这个错误是因为我没有发送指向构造函数的指针,但我不知道如何访问QPlainTextEdit

PS。我是 Qt 和 C++ 的新手

4

2 回答 2

2

Analizador在这种情况下,编译器会在尝试链接您的应用程序时抱怨它找不到构造函数的定义。

确保您已经编写了Analizador::Analizador(QPlainTextEdit*)构造函数的定义。

如果您已经编写了构造函数,但仍然遇到此问题,则您的构造函数所在的 cpp 文件可能尚未编译。如果您使用的是 QtCreator,请尝试Build -> Run QMake然后Build -> Rebuild All

于 2015-05-15T01:03:54.810 回答
1

您可以尝试此解决方法。

#ifndef ANALIZADOR_H
#define ANALIZADOR_H

#include <QPlainTextEdit>

class Analizador
{
public:
    Analizador(QPlainTextEdit *text)
    {
        plainTextEdit = text;
    }

    void addLines(QString line)
    {
        plainTextEdit->appendPlainText(line);
    }

private:
    QPlainTextEdit *plainTextEdit;
};

#endif // ANALIZADOR_H

并像这样使用这个类。

analizador = new Analizador(ui->plainTextEdit);
analizador->addLines("Hello");
analizador->addLines("World");
于 2015-05-15T01:07:06.760 回答