qt — отправить ссылку на qplaintextedit в класс конструктора C ++

Мне нужно отправить ссылку 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 ++

0

Решение

В этом случае компилятор жалуется, что не может найти определение Analizador конструктор, когда он пытается связать ваше приложение.

Убедитесь, что вы написали определение Analizador::Analizador(QPlainTextEdit*) конструктор.

Если вы написали конструктор, но все же столкнулись с этой проблемой, файл cpp, в котором существует ваш конструктор, возможно, не скомпилирован. Если вы используете QtCreator, попробуйте Build -> Run QMake а потом Build -> Rebuild All

2

Другие решения

Вы можете попробовать этот обходной путь.

#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");
1

По вопросам рекламы [email protected]