Я использую класс QWizard, который содержит несколько QWizardPage. Для некоторых страниц мне нужно что-то сделать, когда нажата кнопка «Далее».
Я попытался перезаписать слот next
в своем классе QWizard; Однако, похоже, это не работает. Программа все еще входила в исходный слот next
в родительском классе QWizard вместо того, который я реализовал.
Это потому, что этот next
слот виртуально защищен? Как я могу сделать некоторые вещи после нажатия следующей кнопки?
Следующий файл заголовка моего класса QWizard. Кстати, сигнал accept
отлично работает, как я и ожидал.
#ifndef PRIMERWIZARD_H
#define PRIMERWIZARD_H
#include <QWizard>
namespace Ui {
class PrimerWizard;
}
class PrimerWizard : public QWizard {
Q_OBJECT
public:
PrimerWizard(QWidget *parent = 0);
~PrimerWizard();
protected slots:
void next();
void accept();
protected:
void changeEvent(QEvent *e);
private:
Ui::PrimerWizard *ui;
};
#endif // PRIMERWIZARD_H
Я создаю новый экземпляр мастера с помощью мастера QtCreator (Ха XD)
Код выглядит следующим образом:
PrimerWizard* pW = new PrimerWizard(this);
pW->exec();
И соединение слотов сигналов next
создано QtCreator, я не могу найти, где оно на самом деле подключено. Я думаю, что соединение встроено в ui_PrimerWizard.h с помощью этой функции:
QMetaObject::connectSlotsByName(PrimerWizard);