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"

Что нужно сделать?

0

Решение

Вам не нужно сначала Q_ENUMS(Base::LineState) в MyLine класс, вы генерируете эти метаданные в Base учебный класс.

Также вы должны добавить заголовочный файл с Base класс к списку HEADERS в файле pro, чтобы инструмент moc мог генерировать код для метаданных.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]