将一个信号连接到多个插槽qt

时间:2014-02-09 22:34:33

标签: c++ qt qt5 signals-slots

我正在尝试使用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)

中此类中的插槽名称 在loginChecker.cpp中 我正在尝试将这些声明的信号与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

1 个答案:

答案 0 :(得分:0)

由于你的信号没有参数,你无法将它连接到有一些参数的插槽。

在我看来,在第一种情况下,您应该尝试SLOT(getUserData(QString&)),在第二种情况下只需&loginProcess::getUserData而不用任何括号。