信号和插槽Qt不工作

时间:2014-05-13 01:27:25

标签: c++ qt

没有调用myslot。 MyPage是QWizardPage。

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


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

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

public slots:
  void myslot();

signals:
  void mysignal();

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

3 个答案:

答案 0 :(得分:5)

正确的connect应为:

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

您错过了信号签名中的括号。同样,this接收器隐含在非静态connect中,可以省略。您调用的connect是静态方法。

答案 1 :(得分:3)

确保包含信号和广告位的班级使用Q_OBJECT宏:

class MyPage {
    Q_OBJECT

    //...
}

再次运行qmake。

答案 2 :(得分:1)

你在“mysignal”信号之后错过了“()”。