信号和插槽Qt不工作

PDH*_*PDH -1 c++ qt

myslot没有被调用.MyPage是一个QWizardPage.

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


void ProgressPage::myslot(){
  cout<<"in ";
}
Run Code Online (Sandbox Code Playgroud)

我的头文件包含以下信号和插槽,

public slots:
  void myslot();

signals:
  void mysignal();
Run Code Online (Sandbox Code Playgroud)

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

Rei*_*ica 5

正确的connect应该是:

connect(this, SIGNAL(mysignal()), this, SLOT(myslot()));
Run Code Online (Sandbox Code Playgroud)

你错过了信号签名中的括号.此外,this接收器隐含在非静态中connect,可以省略.在connect你调用是一个静态方法.

  • 在Qt5中,可以使用指向成员函数的指针而不是`SIGNAL`和`SLOT`宏,以便在编译时捕获这些错误. (3认同)