Я хочу использовать сигнал и слот в моей программе, и для этого мне сказали Ineed добавить Q_OBJECT, как показано ниже.
Ну у меня есть класс
class A
{
Q_OBJECT
public:
A();
};
Это дает ошибку, которая говорит: «Q_OBJECT не называет тип». Если я добавлю #include, то выдает ошибку ‘неопределенная ссылка на vtable of A’
Так каков правильный способ сделать это?
Q_OBJECT
макрос предназначен для подклассов QObject
(или другие подклассы). Это также необходимо, если вы хотите, чтобы ваш класс использовал сигналы и слоты.
class A
: public QObject
{
Q_OBJECT
public:
A(QObject *parent = 0);
};
Макрос Q_OBJECT должен появляться в закрытом разделе класса
определение, которое объявляет свои собственные сигналы и слоты или использует другие
услуги, предоставляемые мета-объектной системой Qt.
…
Замечания:
Этот макрос требует, чтобы класс был подклассом QObject. …
Других решений пока нет …