私は単純なC++ Qt
プログラムを持っています。プライベートスロットを使用するとは未定義の参照になります。誰でも助けてくれますか?qtプライベートスロットmoc未定義参照エラー
書籍C++ GUI Programming with Qt4からQt5
を使用してGUIデザインを学習しています。私はWindows
のMinGW
コンパイラでcmake
を使用しています。
ただし、ヘッダファイルから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&)
あなたは、ボイドmywidgets 'として.cpp'ファイル'で '無効enableFindButton(のconst QStringの&text);'を宣言しなかったあなたは、私たちに実装( '.cpp')ファイルを表示することができます:: enableFindButton(のconst QStringの&テキスト){}' – KernelPanic
@KernelPanic スロット関数はconnect()関数で使用されます 'connect(lineLayout、SIGNAL(textChanged(const QString& )、これ、SLOT(enableFindButton(const QString &))); ' – sutradhar
)コメントではなく、質問に追加情報を追加してください –