我正在尝试使用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的signalton类
getUserData(QString& userData)
getUserData(QString userData)
插槽连接起来
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
答案 0 :(得分:0)
由于你的信号没有参数,你无法将它连接到有一些参数的插槽。
在我看来,在第一种情况下,您应该尝试SLOT(getUserData(QString&))
,在第二种情况下只需&loginProcess::getUserData
而不用任何括号。