Ошибка QObject с макросом и включением

Я хочу использовать сигнал и слот в моей программе, и для этого мне сказали Ineed добавить Q_OBJECT, как показано ниже.

Ну у меня есть класс

class A
{
Q_OBJECT
public:
A();
};

Это дает ошибку, которая говорит: «Q_OBJECT не называет тип». Если я добавлю #include, то выдает ошибку ‘неопределенная ссылка на vtable of A’

Так каков правильный способ сделать это?

3

Решение

Q_OBJECT макрос предназначен для подклассов QObject (или другие подклассы). Это также необходимо, если вы хотите, чтобы ваш класс использовал сигналы и слоты.

class A
: public QObject
{
Q_OBJECT

public:
A(QObject *parent = 0);
};

Q_OBJECT

Макрос Q_OBJECT должен появляться в закрытом разделе класса
определение, которое объявляет свои собственные сигналы и слоты или использует другие
услуги, предоставляемые мета-объектной системой Qt.

Замечания:
Этот макрос требует, чтобы класс был подклассом QObject. …

4

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

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

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