我正在使用QWizard类,它包含多个QWizardPage。对于某些页面,我需要在“下一步”按钮被点击时执行一些操作。
我尝试重写我的QWizard类中的next槽,但似乎不起作用。程序仍然进入父QWizard类中原始的next槽,而不是我实现的那个。
这是因为这个next槽是虚拟保护的吗?我如何在下一步按钮被点击后执行一些操作?
以下是我的QWizard类的头文件。顺便说一下,accept信号按预期工作正常。
我通过QtCreator的向导创建了一个新的向导实例(哈哈XD)。
代码如下:
我尝试重写我的QWizard类中的next槽,但似乎不起作用。程序仍然进入父QWizard类中原始的next槽,而不是我实现的那个。
这是因为这个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);