[英]qt private slot moc undefined reference error
我有一个简单的C++ Qt
程序,使用专用插槽时会得到未定义的引用 。 谁能帮我?
我正在从《 使用Qt4进行C ++ GUI编程 》一书中学习使用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&)
未定义的引用错误是因为我没有在( .cpp
)文件中定义void mywidgets::enableFindButton(const QString &text) { }
函数。 这里给出了实现。 void mywidgets::enableFindButton(const QString &text){ findButton->setEnabled(!text.isEmpty()); }
您能向我们展示实现( .cpp
)文件吗,是否声明了void enableFindButton(const QString &text);
在.cpp
文件中作为
void mywidgets::enableFindButton(const QString &text) { }
开始。 一旦摆脱了错误,就可以将代码放入插槽的主体中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.