Мне нужно отправить ссылку 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 ++
В этом случае компилятор жалуется, что не может найти определение 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
И используйте этот класс, как этот.
analizador = new Analizador(ui->plainTextEdit);
analizador->addLines("Hello");
analizador->addLines("World");