Я пытаюсь подключить два слота с сигналом. вот мой заголовочный файл, где я определил свои сигналы, соединяющий один сигнал с несколькими слотами qt
class loginChecker : public QObject
{
Q_OBJECT
public:
static loginChecker *instance(void);
signals:
void loginid();
void loginemail();
private:
loginChecker(void) {}
~loginChecker(void) {}
private:
static loginChecker *s_instance;
};
это сигалтон класс. вот мой слот, который является еще один классом signalton назван loginProcess имени слота в этом классе в getUserData(QString& userData)
в loginChecker.cpp Я пытаюсь соединить эти объявленные сигналы с getUserData(QString userData)
слотом
loginProcess *lp;
lp = loginProcess::instance();
здесь Я доступ к экземпляру класса loginProcess signalton который имеет Slot
этих два путями я пытаюсь соединить эти сигналы и слот, но ни один из них работает
QObject::connect(s_instance, SIGNAL(loginid()), es, SLOT(getUserData(userid)));
это не бросает нет такой ошибку слота во время выполнения
`QObject::connect(s_instance, &esCoreAuthenticator::loginid, es, &loginProcess::getUserData(uid));`
это thworing этой ошибки cannot call member function 'void loginProcess::getUserData(const QString&)' without object
во время компиляции
Спасибо, что работает второй, но я не понимаю, как getUserData получит значение user_id, если я не передаю в нем аргумент ... – user3290805
@ user3290805 Передайте его в свой сигнал: 'сигналы: void loginid (const QString &id); '. Затем вы испускаете его как' emit loginid (user_id) 'или все, что вы используете для своего' user_id'. Вы также можете использовать ['QSignalMapper'] (http://qt-project.org/ doc/qt-5.0/qtcore/qsignalmapper.html) – thuga
Да, мой совет заключался не в том, чтобы удалить его из слота, а в том, чтобы добавить его в сигнал, если вам нужно его передать. – Predelnik