我有一个简单的 C++ Qt
程序,当我使用专用槽时,我得到了 undefined reference。谁能帮帮我?
我正在学习使用 Qt5
中的 GUI 设计 C++ GUI Programming with Qt4 .我在 Windows
中使用 cmake
和 MinGW
编译器。
但是,如果我从头文件中注释掉 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&)
最佳答案
undefined reference 错误是因为我没有定义 void mywidgets::enableFindButton(const QString &text)
{
(.cpp
) 文件中的函数。这里给出了实现。
void mywidgets::enableFindButton(const QString &text){
findButton->setEnabled(!text.isEmpty());
}
关于c++ - qt private slot moc undefined reference错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262351/