2
class MyMainWindow:public QMainWindow {
public:
MyWindow* myWindow() { return myWindow ;}
private:
MyWindow* myWindow;
};
class MyWindow:public Qobject {
private slot:
void mySlot();
};
class MyWindow2: class QWidget {
public slot:
void refreshClick();
signals:
signal1();
};
MyWindow2::MyWindow2(QMainWindow* parent) {
QPushButton* refresh;
QObject::connect(refresh,SIGNAL(clicked()), this, SLOT(refreshClicked()));
if(parent) {
QObject::connect(this,SIGNAL(signal1),parent->myWindow(),SLOT(mySlot));
}
}は、私たちは、私はスロットrefreshClickedから信号1を発するように合法であるかどうかを知りたいとも内からの信号を発するのいずれかの短所がある公共のスロットから
void MyWindow2::refreshClicked(){
emit signal1();
}
を信号を発することができますスロット
はい、合法です。基本的には、接続されているすべてのスロットに対してただちに関数呼び出しを行います(スレッド間で発生する、または 'connect'呼び出しで指定した場合)。ただ好奇心から出て、どこに信号を発しますか? – hyde
スロットを一般的な機能として扱い、同じ質問をもう一度尋ねます。 – vahancho