-1
私のライブでは、接続後に関数が正しく呼び出されない理由を理解できません。Qt Slot関数が呼び出されていない
.hファイル
class NewCustomer : public QObject {
Q_OBJECT
public:
QWidget* newCustomer = new QWidget;
QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
NewCustomer(QObject *parent);
~NewCustomer();
private slots:
void aAccepted();
};
.cppファイル
void thisfunctionworksthough() {
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec();
}
NewCustomer::NewCustomer(QObject *parent) : QObject(parent) {
connect(this->buttonBox, &QDialogButtonBox::accepted, this, &NewCustomer::aAccepted);
connect(buttonBox, &QDialogButtonBox::rejected, thisfunctionworksthough);
newCustomer->setMinimumSize(700, 600);
newCustomer->show();
}
void NewCustomer::aAccepted() {
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec();
}
フリー機能が動作しますが、スロットとして定義されたクラス内の1にはありません。どうして?
1つはOKボタン(受け入れ)に割り当てられ、もう1つはキャンセルボタン(拒否)に割り当てられます。 [OK]を押すと何も起こりません。[キャンセル]を押すとメッセージが表示されます。 – Eejin
このコードはコンパイルされますか? – HazemGomaa
@ H.Gはい、私はインクルードといくつかのウィジェットを削除して、最小限の例を作りました。 – Eejin