将引用 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");
我需要将引用 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");