qt private slot moc undefined reference错误
qt private slot moc undefined reference error
我有一个简单的 C++ Qt
程序,当我使用专用槽时,我得到了 undefined reference。谁能帮帮我?
我正在使用 C++ GUI Programming with Qt4 一书中的 Qt5
学习 GUI 设计。我在 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&)
你能告诉我们实现 (.cpp
) 文件吗,你在 .cpp
文件中声明 void enableFindButton(const QString &text);
为
void mywidgets::enableFindButton(const QString &text)
{
}
开始。消除错误后,您可以将代码放入插槽的主体中。
undefined reference错误是因为我没有在(.cpp
)文件中定义void mywidgets::enableFindButton(const QString &text)
{
}
函数。这里给出了实现。
void mywidgets::enableFindButton(const QString &text){
findButton->setEnabled(!text.isEmpty());
}
我有一个简单的 C++ Qt
程序,当我使用专用槽时,我得到了 undefined reference。谁能帮帮我?
我正在使用 C++ GUI Programming with Qt4 一书中的 Qt5
学习 GUI 设计。我在 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&)
你能告诉我们实现 (.cpp
) 文件吗,你在 .cpp
文件中声明 void enableFindButton(const QString &text);
为
void mywidgets::enableFindButton(const QString &text)
{
}
开始。消除错误后,您可以将代码放入插槽的主体中。
undefined reference错误是因为我没有在(.cpp
)文件中定义void mywidgets::enableFindButton(const QString &text)
{
}
函数。这里给出了实现。
void mywidgets::enableFindButton(const QString &text){
findButton->setEnabled(!text.isEmpty());
}