C++ 信号和插槽Qt不工作
myslot没有被叫来。MyPage是一个QWizardPageC++ 信号和插槽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
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()));