ボタンがクリックされたときに、ボタンオブジェクトが sigKK() シグナルを受信しなかったのはなぜですか?
シグナルが送信されると、すべての qt オブジェクトがこのシグナルを受信できますか?
コードは次のとおりです。
class PushButton : public QPushButton
{
Q_OBJECT
signals:
void sigKK();
};
PushButton クラスは QPushButton から継承しますが、ここではシグナルとスロットを接続しません。これは正しいですか?
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(){
resize(400,200);
connect(this,SIGNAL(sigKK()),this,SLOT(showRecv1()));
button = new PushButton();
button->setText("Hello,All");
button->resize(40,15);
connect(button, SIGNAL(clicked()),this,SLOT(buttonCK()));
connect(button, SIGNAL(sigKK()),this,SLOT(showRecv2()));
//**I can connect sigKK signal with showRecv2 slot here ?****
button->show();
}
~MainWindow(){
}
signals:
void sigKK();
public slots:
void showRecv1(){
cout<<"recved 1"<<endl;
resize(100,100);
}
void showRecv2(){
cout<<"recved 2"<<endl;
button->setText(".....");
}
void buttonCK(){
emit sigKK();
cout<<"emited"<<endl;
}
private:
PushButton *button ;
};
#endif