Qt、枚举和元对象编译器



我有以下用户类:

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"

需要做什么?

您不需要MyLine类中的第一个Q_ENUMS(Base::LineState),而是在类Base生成此元数据。

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

相关内容

  • 没有找到相关文章

最新更新