我使用的是一个QWizard类,它包含几个QWizardPage。对于某些页面,当单击"Next“按钮时,我需要做一些事情。
我试图在我的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的向导(Ha XD)创建了一个新的向导实例
守则如下:
PrimerWizard* pW = new PrimerWizard(this);
pW->exec();next的信号槽连接是由QtCreator创建的,我找不到它实际连接的位置。我认为连接是通过以下函数在ui_PrimerWizard.h中构建的:
QMetaObject::connectSlotsByName(PrimerWizard);发布于 2010-07-26 00:42:54
不能覆盖next插槽。但是,用于validatePage的QWizardPage函数可以。当单击"Next“或"Finish”按钮时,将调用此函数。
https://stackoverflow.com/questions/3327316
复制相似问题