繁体   English   中英

qt private slot moc undefined reference error

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM