我正在使用QWizard类,其中包含几个QWizardPage.对于某些页面,我需要在单击"下一步"按钮时执行某些操作.
我试图覆盖nextQWizard类中的插槽; 然而,似乎这不起作用.程序仍然进入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
Run Code Online (Sandbox Code Playgroud)
我通过QtCreator的向导(Ha XD)创建了一个新的向导实例
代码如下:
PrimerWizard* pW = new PrimerWizard(this);
pW->exec();
Run Code Online (Sandbox Code Playgroud)
信号槽连接next由QtCreator创建,我无法找到它实际连接的位置.我认为连接是通过这个函数在ui_PrimerWizard.h中构建的:
QMetaObject::connectSlotsByName(PrimerWizard);
Run Code Online (Sandbox Code Playgroud)