将引用 qplaintextedit 发送到 C++ 构造函数 class

send reference qplaintextedit to C++ constructor class

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

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

构造函数是:

Analizador(QPlainTextEdit* text);

编译器抛出错误:

mainwindow.cpp:23: error: undefined reference to `Analizador::Analizador(QPlainTextEdit*)'

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

的指针

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

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

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

如果你已经写了构造函数,但仍然出现这个问题,你的构造函数所在的cpp文件可能没有编译。如果您使用的是 QtCreator,请尝试 Build -> Run QMake 然后 Build -> Rebuild All

您可以试试这个解决方法。

#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

然后像这样使用 class。

analizador = new Analizador(ui->plainTextEdit);
analizador->addLines("Hello");
analizador->addLines("World");