C++ 信号和插槽Qt不工作

C++ 信号和插槽Qt不工作,c++,qt,C++,Qt,myslot没有被叫来。MyPage是一个QWizardPage MyPage::initializePage() { connect(this,SIGNAL(mysignal), this,SLOT(myslot())); emit mysignal(); } void ProgressPage::myslot(){ cout<<"in "; } 我错过了什么?我的调试器一直执行到发出,但无法进入插槽。确保带有信号和插槽的类使用Q\u对象宏: class My

myslot没有被叫来。MyPage是一个QWizardPage

MyPage::initializePage()
{  
  connect(this,SIGNAL(mysignal), this,SLOT(myslot()));
  emit mysignal();
}


void ProgressPage::myslot(){
  cout<<"in ";
}

我错过了什么?我的调试器一直执行到发出,但无法进入插槽。

确保带有信号和插槽的类使用
Q\u对象
宏:

class MyPage {
    Q_OBJECT

    //...
}

然后再次运行qmake。

正确的
连接应为:

connect(this, SIGNAL(mysignal()), this, SLOT(myslot()));

您缺少信号签名中的括号。此外,
接收器隐含在非静态的
连接中,可以省略。您调用的
connect
是一个静态方法。

您缺少“mysignal”信号后面的“()”。

在Qt5中,可以使用指向成员的指针函数,而不是
信号
插槽
宏,以便在编译时捕获此类错误。
connect
如果连接成功,则返回
true
;否则返回
false
。所以,首先,尝试检查连接是否成功。
connect(this, SIGNAL(mysignal()), this, SLOT(myslot()));