Ошибка при создании signal (Qt)
Класс:
class RegData
{
private:
QString login;
QString email;
QString password;
public:
RegData(QString log = "", QString mail = "", QString pass = "") : login(log), email(mail), password(pass)
{
}
RegData(const RegData& src) :
login(src.login), email(src.email), password(src.password)
{
}
void cpy(const RegData& from)
{
login = from.login;
email = from.email;
password = from.password;
}
void output()
{
qDebug() << login<<email<<password;
}
QString getLogin()
{
return login;
}
QString getEmail()
{
return email;
}
QString getPassword()
{
return password;
}
void setLogin(const QString log)
{
login = log;
}
void setEmail(const QString mail)
{
email = mail;
}
void setPassword(const QString pass)
{
password = pass;
}
signals:
void sendObject(RegData *obj);
};
Когда добавляю сигналы (любые), выскакивает ошибка
class declaration lacks q_object macro Exit returned ID 1
без сигналов все нормально
Ответы (1 шт):
Автор решения: V31R
→ Ссылка
Для работы с механизмом сигналов и слотов из Qt нужно показать фреймворку, что он должен обрабатывать этот класс с учётом того, что в нём могут быть сигналы и слоты.
Для этого наследуется класс QObject и в начале класса указывается макрос Q_OBJECT. То есть будет вот такой код:
#include <QObject>
class RegData : public QObject
{
Q_OBJECT
Вам нужно почитать документации и статьи: отличная статья для примера.