我试图用on信号连接两个插槽 . 这是我的头文件,我已经定义了我的信号
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;
};
这是sigalton类 . 这是我的插槽,这是另一个信号类,在此类中命名为loginProcess的插槽名称 getUserData(QString& userData)
在loginChecker.cpp中我试图将这些声明的信号与 getUserData(QString userData)
slot连接起来
loginProcess *lp;
lp = loginProcess::instance();
这里我正在访问具有插槽的loginProcess signalton类的实例
这是我尝试连接这些信号和插槽的两种方法,但没有一种方法正常工作
QObject::connect(s_instance, SIGNAL(loginid()), es, SLOT(getUserData(userid)));
这在运行时没有抛出这样的插槽错误
`QObject::connect(s_instance, &esCoreAuthenticator::loginid, es, &loginProcess::getUserData(uid));`
这是在编译时遇到此错误 cannot call member function 'void loginProcess::getUserData(const QString&)' without object
1 回答
由于您的信号没有参数,因此您无法将其连接到具有某些参数的插槽 .
而且在我看来,在第一种情况下你应该尝试
SLOT(getUserData(QString&))
,在第二种情况下只需&loginProcess::getUserData
没有任何括号 .