c++ - qt private slot moc undefined reference错误

标签 c++ qt cmake automoc

我有一个简单的 C++ Qt 程序,当我使用专用槽时,我得到了 undefined reference。谁能帮帮我?

我正在学习使用 Qt5 中的 GUI 设计 C++ GUI Programming with Qt4 .我在 Windows 中使用 cmakeMinGW 编译器。

但是,如果我从头文件中注释掉 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/

相关文章:

c++ - 用数组进行字节交换?

c++ - 将指向成员函数的指针绑定(bind)到 std::pair 并转换为 void*

c++ - Qt C++ - 在 QText 浏览器中显示链接

c++ - 使用 C++ 在 QDateEdit 中设置日期

c++ - 链接整个文件夹

java - "Simulating"一个 64 位整数和两个 32 位整数

c++ - Qt中如何跨不同的对话框存储变量

c++ - Qt 应用程序从 QtCreator 启动时会找到库,但不能从命令行启动

c - 使用 cmake 时未定义外部变量的引用

c - 是否可以在 CLion 中开发 linux 内核模块?