8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qdialog.h>
19class Q_WIDGETS_EXPORT
QWizard :
public QDialog
22 Q_PROPERTY(WizardStyle wizardStyle READ wizardStyle WRITE setWizardStyle)
23 Q_PROPERTY(WizardOptions options READ options WRITE setOptions)
24 Q_PROPERTY(Qt::TextFormat titleFormat READ titleFormat WRITE setTitleFormat)
25 Q_PROPERTY(Qt::TextFormat subTitleFormat READ subTitleFormat WRITE setSubTitleFormat)
26 Q_PROPERTY(
int startId READ startId WRITE setStartId)
27 Q_PROPERTY(
int currentId READ currentId WRITE setCurrentId NOTIFY currentIdChanged)
28 Q_PROPERTY(BannerSizePolicy bannerSizePolicy READ bannerSizePolicy WRITE setBannerSizePolicy REVISION(6, 11))
65 enum class BannerSizePolicy {
69 Q_ENUM(BannerSizePolicy)
72 IndependentPages = 0x00000001,
73 IgnoreSubTitles = 0x00000002,
74 ExtendedWatermarkPixmap = 0x00000004,
75 NoDefaultButton = 0x00000008,
76 NoBackButtonOnStartPage = 0x00000010,
77 NoBackButtonOnLastPage = 0x00000020,
78 DisabledBackButtonOnLastPage = 0x00000040,
79 HaveNextButtonOnLastPage = 0x00000080,
80 HaveFinishButtonOnEarlyPages = 0x00000100,
81 NoCancelButton = 0x00000200,
82 CancelButtonOnLeft = 0x00000400,
83 HaveHelpButton = 0x00000800,
84 HelpButtonOnRight = 0x00001000,
85 HaveCustomButton1 = 0x00002000,
86 HaveCustomButton2 = 0x00004000,
87 HaveCustomButton3 = 0x00008000,
88 NoCancelButtonOnLastPage = 0x00010000
92 Q_DECLARE_FLAGS(WizardOptions, WizardOption)
95 explicit QWizard(QWidget *parent =
nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
98 int addPage(QWizardPage *page);
99 void setPage(
int id, QWizardPage *page);
100 void removePage(
int id);
101 QWizardPage *page(
int id)
const;
102 bool hasVisitedPage(
int id)
const;
103 QList<
int> visitedIds()
const;
104 QList<
int> pageIds()
const;
105 void setStartId(
int id);
107 QWizardPage *currentPage()
const;
108 int currentId()
const;
110 virtual bool validateCurrentPage();
111 virtual int nextId()
const;
113 void setField(
const QString &name,
const QVariant &value);
114 QVariant field(
const QString &name)
const;
116 void setWizardStyle(WizardStyle style);
117 WizardStyle wizardStyle()
const;
119 void setOption(WizardOption option,
bool on =
true);
120 bool testOption(WizardOption option)
const;
121 void setOptions(WizardOptions options);
122 WizardOptions options()
const;
124 void setButtonText(WizardButton which,
const QString &text);
125 QString buttonText(WizardButton which)
const;
126 void setButtonLayout(
const QList<WizardButton> &layout);
127 void setButton(WizardButton which, QAbstractButton *button);
128 QAbstractButton *button(WizardButton which)
const;
130 void setTitleFormat(Qt::TextFormat format);
131 Qt::TextFormat titleFormat()
const;
132 void setSubTitleFormat(Qt::TextFormat format);
133 Qt::TextFormat subTitleFormat()
const;
134 void setBannerSizePolicy(BannerSizePolicy bannerSizePolicy);
135 QWizard::BannerSizePolicy bannerSizePolicy()
const;
136 void setPixmap(WizardPixmap which,
const QPixmap &pixmap);
137 QPixmap pixmap(WizardPixmap which)
const;
139 void setSideWidget(QWidget *widget);
140 QWidget *sideWidget()
const;
142 void setDefaultProperty(
const char *className,
const char *property,
143 const char *changedSignal);
145 void setVisible(
bool visible) override;
146 QSize sizeHint()
const override;
149 void currentIdChanged(
int id);
150 void helpRequested();
151 void customButtonClicked(
int which);
152 void pageAdded(
int id);
153 void pageRemoved(
int id);
158 void setCurrentId(
int id);
162 bool event(QEvent *event) override;
163 void resizeEvent(QResizeEvent *event) override;
164 void paintEvent(QPaintEvent *event) override;
165#if defined(Q_OS_WIN) || defined(Q_QDOC)
166 bool nativeEvent(
const QByteArray &eventType,
void *message, qintptr *result) override;
168 void done(
int result) override;
169 virtual void initializePage(
int id);
170 virtual void cleanupPage(
int id);
173 Q_DISABLE_COPY(QWizard)
174 Q_DECLARE_PRIVATE(QWizard)
175 Q_PRIVATE_SLOT(d_func(),
void _q_emitCustomButtonClicked())
176 Q_PRIVATE_SLOT(d_func(),
void _q_updateButtonStates())
177 Q_PRIVATE_SLOT(d_func(),
void _q_handleFieldObjectDestroyed(QObject *))
179 friend class QWizardPage;
182Q_DECLARE_OPERATORS_FOR_FLAGS(QWizard::WizardOptions)
184class QWizardPagePrivate;
189 Q_PROPERTY(QString title READ title WRITE setTitle)
190 Q_PROPERTY(QString subTitle READ subTitle WRITE setSubTitle)
193 explicit QWizardPage(QWidget *parent =
nullptr);
196 void setTitle(
const QString &title);
197 QString title()
const;
198 void setSubTitle(
const QString &subTitle);
199 QString subTitle()
const;
200 void setPixmap(QWizard::WizardPixmap which,
const QPixmap &pixmap);
201 QPixmap pixmap(QWizard::WizardPixmap which)
const;
202 void setFinalPage(
bool finalPage);
203 bool isFinalPage()
const;
204 void setCommitPage(
bool commitPage);
205 bool isCommitPage()
const;
206 void setButtonText(QWizard::WizardButton which,
const QString &text);
207 QString buttonText(QWizard::WizardButton which)
const;
209 virtual void initializePage();
210 virtual void cleanupPage();
211 virtual bool validatePage();
212 virtual bool isComplete()
const;
213 virtual int nextId()
const;
216 void completeChanged();
219 void setField(
const QString &name,
const QVariant &value);
220 QVariant field(
const QString &name)
const;
221 void registerField(
const QString &name, QWidget *widget,
const char *property =
nullptr,
222 const char *changedSignal =
nullptr);
223 QWizard *wizard()
const;
226 Q_DISABLE_COPY(QWizardPage)
227 Q_DECLARE_PRIVATE(QWizardPage)
228 Q_PRIVATE_SLOT(d_func(),
void _q_maybeEmitCompleteChanged())
229 Q_PRIVATE_SLOT(d_func(),
void _q_updateCachedCompleteState())
231 friend class QWizard;
232 friend class QWizardPrivate;
The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.
QSize minimumSizeHint() const override
\reimp
void setSideWidget(QWidget *widget)
QWatermarkLabel(QWidget *parent, QWidget *sideWidget)
QWidget * sideWidget() const
QWizardDefaultProperty(const char *className, const char *property, const char *changedSignal)
void resolve(const QList< QWizardDefaultProperty > &defaultPropertyTable)
QWizardField(QWizardPage *page, const QString &spec, QObject *object, const char *property, const char *changedSignal)
void findProperty(const QWizardDefaultProperty *properties, int propertyCount)
bool operator!=(const QWizardLayoutInfo &other) const
bool operator==(const QWizardLayoutInfo &other) const
void _q_maybeEmitCompleteChanged()
QMap< int, QString > buttonCustomTexts
void _q_updateCachedCompleteState()
bool cachedIsComplete() const
QPixmap pixmaps[QWizard::NPixmaps]
QList< QWizardField > pendingFields
The QWizardPage class is the base class for wizard pages.
QMap< int, QString > buttonCustomTexts
QMap< QString, int > fieldIndexMap
void setStyle(QStyle *style)
QList< QWizardDefaultProperty > defaultPropertyTable
bool buttonLayoutContains(QWizard::WizardButton which)
void _q_updateButtonStates()
QVBoxLayout * pageVBoxLayout
QWatermarkLabel * watermarkLabel
QWizardLayoutInfo layoutInfoForCurrentPage()
void connectButton(QWizard::WizardButton which) const
void removeFieldAt(int index)
void recreateLayout(const QWizardLayoutInfo &info)
QWizardAntiFlickerWidget * antiFlickerWidget
QWizardHeader * headerWidget
QHBoxLayout * buttonLayout
void updateMinMaxSizes(const QWizardLayoutInfo &info)
void _q_emitCustomButtonClicked()
void setButtonLayout(const QWizard::WizardButton *array, int size)
bool isVistaThemeEnabled() const
void updatePixmap(QWizard::WizardPixmap which)
void _q_handleFieldObjectDestroyed(QObject *)
void switchToPage(int newId, Direction direction)
QList< QWizard::WizardButton > buttonsCustomLayout
QPixmap defaultPixmaps[QWizard::NPixmaps]
QWidget * placeholderWidget2
QWizardRuler * bottomRuler
Qt::TextFormat subTitleFmt
void updateButtonLayout()
QList< QWizardField > fields
bool ensureButton(QWizard::WizardButton which) const
bool buttonsHaveCustomLayout
void cleanupPagesNotInHistory()
QAbstractButton * btns[QWizard::NButtons]
QWidget * placeholderWidget1
void addField(const QWizardField &field)
QWizardLayoutInfo layoutInfo
QWizardRuler(QWidget *parent=nullptr)
The QWizard class provides a framework for wizards.
static const char * buttonSlots(QWizard::WizardButton which)
static QString buttonDefaultText(int wstyle, int which, const QWizardPrivate *wizardPrivate)
static QString object_name_for_button(QWizard::WizardButton which)
Q_DECLARE_TYPEINFO(QWizardDefaultProperty, Q_RELOCATABLE_TYPE)
const int ModernHeaderTopMargin
static void changeSpacerSize(QLayout *layout, int index, int width, int height)
const int MacLayoutLeftMargin
const int GapBetweenLogoAndRightEdge
static bool objectInheritsXAndXIsCloserThanY(const QObject *object, const QByteArray &classX, const QByteArray &classY)
static QWidget * iWantTheFocus(QWidget *ancestor)
Q_DECLARE_TYPEINFO(QWizardField, Q_RELOCATABLE_TYPE)
const int MacLayoutBottomMargin
const int MacLayoutRightMargin
static const char * changed_signal(int which)
const size_t NFallbackDefaultProperties
const int MacButtonTopMargin
QT_REQUIRE_CONFIG(wizard)