qt частный слот moc неопределенная ошибка ссылки

У меня простой C++ Qt программа и я получаю неопределенные ссылки когда я использую частные слоты. Может кто-нибудь мне помочь?

Я изучаю дизайн GUI, используя Qt5 из книги Программирование на C ++ с использованием Qt4. я использую cmake с MinGW компилятор в Windows,

Однако, если я закомментирую Q_OBJECT из файла заголовка, то он компилируется без ошибок.

Это заголовочный файл.

#ifndef MYWIDGETS_H
#define MYWIDGETS_H

#include <QDialog>class mywidgets : public QDialog
{
Q_OBJECT
public:

mywidgets();
void myDemoWidgets();
void mySecondDemoWidgets();
private:
void findLayout();

private slots:
//void findClicked();
void enableFindButton(const QString &text);

signals:
void findNext(const QString &str, Qt::CaseSensitivity cs);
void findPrevious(const QString &str, Qt::CaseSensitivity cs);
};

#endif // MYWIDGETS_H

Это ошибка:

myClass_automoc.cpp:-1: error: undefined reference to mywidgets::enableFindButton(QString const&)

0

Решение

Можете ли вы показать нам реализацию (.cpp) файл, вы заявили void enableFindButton(const QString &text); в .cpp подать как
void mywidgets::enableFindButton(const QString &text)
{
}

для начала. Как только вы избавитесь от ошибки, вы можете поместить код в тело слота.

0

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

неопределенные ссылки ошибка была, потому что я не определил void mywidgets::enableFindButton(const QString &text)
{
}
функция в (.cpp) файл. Реализация приведена здесь.
void mywidgets::enableFindButton(const QString &text){
findButton->setEnabled(!text.isEmpty());
}

0