1

我有以下用户类:

class MyLine : public QLineEdit
{
    Q_OBJECT

    Q_ENUMS(Base::LineState)

public:
    explicit MyLine (QWidget *parent = 0);
};

我也有包含所有全局枚举的基类:

class Base
{
    Q_GADGET

    Q_ENUMS(LineState)

public:
    // The states for MyLine
    enum LineState
    {
        Empty, Correct, Wrong
    };
};

当我编译这段代码时,出现以下错误:undefined reference to "Base::staticMetaObject"

需要做什么?

4

1 回答 1

3

你不需要Q_ENUMS(Base::LineState)MyLine课堂上第一,你在课堂上生成这个元数据Base

此外,您必须将带有Base类的头文件添加到 pro 文件的列表中HEADERS,以便 moc 工具可以为元数据生成代码。

于 2013-11-16T21:28:51.847 回答