QWizardPage¶
The QWizardPage
class is the base class for wizard pages. More…
Synopsis¶
Functions¶
def
buttonText
(which)def
field
(name)def
isCommitPage
()def
isFinalPage
()def
pixmap
(which)def
registerField
(name, widget[, property=None[, changedSignal=None]])def
setButtonText
(which, text)def
setCommitPage
(commitPage)def
setField
(name, value)def
setFinalPage
(finalPage)def
setPixmap
(which, pixmap)def
setSubTitle
(subTitle)def
setTitle
(title)def
subTitle
()def
title
()def
wizard
()
Virtual functions¶
def
cleanupPage
()def
initializePage
()def
isComplete
()def
nextId
()def
validatePage
()
Signals¶
def
completeChanged
()
Detailed Description¶
QWizard
represents a wizard. Each page is a QWizardPage
. When you create your own wizards, you can use QWizardPage
directly, or you can subclass it for more control.
A page has the following attributes, which are rendered by QWizard
: a title
, a subTitle
, and a set of pixmaps
. See Elements of a Wizard Page
for details. Once a page is added to the wizard (using addPage()
or setPage()
), wizard()
returns a pointer to the associated QWizard
object.
Page provides five virtual functions that can be reimplemented to provide custom behavior:
initializePage()
is called to initialize the page’s contents when the user clicks the wizard’s Next button. If you want to derive the page’s default from what the user entered on previous pages, this is the function to reimplement.
cleanupPage()
is called to reset the page’s contents when the user clicks the wizard’s Back button.
validatePage()
validates the page when the user clicks Next or Finish. It is often used to show an error message if the user has entered incomplete or invalid information.
nextId()
returns the ID of the next page. It is useful whencreating non-linear wizards
, which allow different traversal paths based on the information provided by the user.
isComplete()
is called to determine whether the Next and/or Finish button should be enabled or disabled. If you reimplementisComplete()
, also make sure thatcompleteChanged()
is emitted whenever the complete state changes.
Normally, the Next button and the Finish button of a wizard are mutually exclusive. If isFinalPage()
returns true
, Finish is available; otherwise, Next is available. By default, isFinalPage()
is true only when nextId()
returns -1. If you want to show Next and Final simultaneously for a page (letting the user perform an “early finish”), call setFinalPage
(true) on that page. For wizards that support early finishes, you might also want to set the HaveNextButtonOnLastPage
and HaveFinishButtonOnEarlyPages
options on the wizard.
In many wizards, the contents of a page may affect the default values of the fields of a later page. To make it easy to communicate between pages, QWizard
supports a "field" mechanism
that allows you to register a field (e.g., a QLineEdit
) on a page and to access its value from any page. Fields are global to the entire wizard and make it easy for any single page to access information stored by another page, without having to put all the logic in QWizard
or having the pages know explicitly about each other. Fields are registered using registerField()
and can be accessed at any time using field()
and setField()
.
- class PySide6.QtWidgets.QWizardPage([parent=None])¶
- Parameters
parent –
PySide6.QtWidgets.QWidget
Constructs a wizard page with the given parent
.
When the page is inserted into a wizard using addPage()
or setPage()
, the parent is automatically set to be the wizard.
See also
- PySide6.QtWidgets.QWizardPage.buttonText(which)¶
- Parameters
which –
WizardButton
- Return type
str
Returns the text on button which
on this page.
If a text has ben set using setButtonText()
, this text is returned. Otherwise, if a text has been set using setButtonText()
, this text is returned.
By default, the text on buttons depends on the wizardStyle
. For example, on macOS, the Next button is called Continue.
See also
- PySide6.QtWidgets.QWizardPage.cleanupPage()¶
This virtual function is called by cleanupPage()
when the user leaves the page by clicking Back (unless the IndependentPages
option is set).
The default implementation resets the page’s fields to their original values (the values they had before initializePage()
was called).
See also
cleanupPage()
initializePage()
IndependentPages
- PySide6.QtWidgets.QWizardPage.completeChanged()¶
- PySide6.QtWidgets.QWizardPage.field(name)¶
- Parameters
name – str
- Return type
object
Returns the value of the field called name
.
This function can be used to access fields on any page of the wizard. It is equivalent to calling wizard()
->``name`` :meth:` <PySide6.QtWidgets.QWizard.field>` ).
Example:
def initializePage(self): className = field("className").toString() headerLineEdit.setText(className.toLower() + ".h") implementationLineEdit.setText(className.toLower() + ".cpp") outputDirLineEdit.setText(QDir.toNativeSeparators(QDir.tempPath()))See also
- PySide6.QtWidgets.QWizardPage.initializePage()¶
This virtual function is called by initializePage()
to prepare the page just before it is shown either as a result of restart()
being called, or as a result of the user clicking Next. (However, if the IndependentPages
option is set, this function is only called the first time the page is shown.)
By reimplementing this function, you can ensure that the page’s fields are properly initialized based on fields from previous pages. For example:
def initializePage(self): className = field("className").toString() headerLineEdit.setText(className.toLower() + ".h") implementationLineEdit.setText(className.toLower() + ".cpp") outputDirLineEdit.setText(QDir.toNativeSeparators(QDir.tempPath()))
The default implementation does nothing.
See also
initializePage()
cleanupPage()
IndependentPages
- PySide6.QtWidgets.QWizardPage.isCommitPage()¶
- Return type
bool
Returns true
if this page is a commit page; otherwise returns false
.
See also
- PySide6.QtWidgets.QWizardPage.isComplete()¶
- Return type
bool
This virtual function is called by QWizard
to determine whether the Next or Finish button should be enabled or disabled.
The default implementation returns true
if all mandatory fields
are filled; otherwise, it returns false
.
If you reimplement this function, make sure to emit completeChanged()
, from the rest of your implementation, whenever the value of changes. This ensures that QWizard
updates the enabled or disabled state of its buttons. An example of the reimplementation is available here .
See also
- PySide6.QtWidgets.QWizardPage.isFinalPage()¶
- Return type
bool
This function is called by QWizard
to determine whether the Finish button should be shown for this page or not.
By default, it returns true
if there is no next page (i.e., nextId()
returns -1); otherwise, it returns false
.
By explicitly calling setFinalPage
(true), you can let the user perform an “early finish”.
See also
isComplete()
HaveFinishButtonOnEarlyPages
- PySide6.QtWidgets.QWizardPage.nextId()¶
- Return type
int
This virtual function is called by nextId()
to find out which page to show when the user clicks the Next button.
The return value is the ID of the next page, or -1 if no page follows.
By default, this function returns the lowest ID greater than the ID of the current page, or -1 if there is no such ID.
By reimplementing this function, you can specify a dynamic page order. For example:
def nextId(self): if (evaluateRadioButton.isChecked()) { return LicenseWizard::Page_Evaluate else: return LicenseWizard::Page_RegisterSee also
- PySide6.QtWidgets.QWizardPage.pixmap(which)¶
- Parameters
which –
WizardPixmap
- Return type
Returns the pixmap set for role which
.
Pixmaps can also be set for the entire wizard using setPixmap()
, in which case they apply for all pages that don’t specify a pixmap.
See also
setPixmap()
pixmap()
Elements of a Wizard Page
- PySide6.QtWidgets.QWizardPage.registerField(name, widget[, property=None[, changedSignal=None]])¶
- Parameters
name – str
widget –
PySide6.QtWidgets.QWidget
property – str
changedSignal – str
Creates a field called name
associated with the given property
of the given widget
. From then on, that property becomes accessible using field()
and setField()
.
Fields are global to the entire wizard and make it easy for any single page to access information stored by another page, without having to put all the logic in QWizard
or having the pages know explicitly about each other.
If name
ends with an asterisk (*
), the field is a mandatory field. When a page has mandatory fields, the Next and/or Finish buttons are enabled only when all mandatory fields are filled. This requires a changedSignal
to be specified, to tell QWizard
to recheck the value stored by the mandatory field.
QWizard
knows the most common Qt widgets. For these (or their subclasses), you don’t need to specify a property
or a changedSignal
. The table below lists these widgets:
Widget
Property
Change Notification Signal
bool
checked
int
value
int
currentIndex
QDateTime
dateTime
QString
text
int
currentRow
int
value
You can use setDefaultProperty()
to add entries to this table or to override existing entries.
To consider a field “filled”, QWizard
simply checks that their current value doesn’t equal their original value (the value they had before initializePage()
was called). For QLineEdit
, it also checks that hasAcceptableInput()
returns true, to honor any validator or mask.
QWizard
‘s mandatory field mechanism is provided for convenience. It can be bypassed by reimplementing isComplete()
.
See also
- PySide6.QtWidgets.QWizardPage.setButtonText(which, text)¶
- Parameters
which –
WizardButton
text – str
Sets the text on button which
to be text
on this page.
By default, the text on buttons depends on the wizardStyle
, but may be redefined for the wizard as a whole using setButtonText()
.
See also
- PySide6.QtWidgets.QWizardPage.setCommitPage(commitPage)¶
- Parameters
commitPage – bool
Sets this page to be a commit page if commitPage
is true; otherwise, sets it to be a normal page.
A commit page is a page that represents an action which cannot be undone by clicking Back or Cancel.
A Commit button replaces the Next button on a commit page. Clicking this button simply calls next()
just like clicking Next does.
A page entered directly from a commit page has its Back button disabled.
See also
- PySide6.QtWidgets.QWizardPage.setField(name, value)¶
- Parameters
name – str
value – object
Sets the value of the field called name
to value
.
This function can be used to set fields on any page of the wizard. It is equivalent to calling wizard()
->``name`` :meth:` <PySide6.QtWidgets.QWizard.setField>` , value
).
See also
- PySide6.QtWidgets.QWizardPage.setFinalPage(finalPage)¶
- Parameters
finalPage – bool
Explicitly sets this page to be final if finalPage
is true.
After calling (true), isFinalPage()
returns true
and the Finish button is visible (and enabled if isComplete()
returns true).
After calling (false), isFinalPage()
returns true
if nextId()
returns -1; otherwise, it returns false
.
See also
isFinalPage()
isComplete()
HaveFinishButtonOnEarlyPages
- PySide6.QtWidgets.QWizardPage.setPixmap(which, pixmap)¶
- Parameters
which –
WizardPixmap
pixmap –
PySide6.QtGui.QPixmap
Sets the pixmap for role which
to pixmap
.
The pixmaps are used by QWizard
when displaying a page. Which pixmaps are actually used depend on the wizard style
.
Pixmaps can also be set for the entire wizard using setPixmap()
, in which case they apply for all pages that don’t specify a pixmap.
See also
pixmap()
setPixmap()
Elements of a Wizard Page
- PySide6.QtWidgets.QWizardPage.setSubTitle(subTitle)¶
- Parameters
subTitle – str
This property holds the subtitle of the page.
The subtitle is shown by the QWizard
, between the title and the actual page. Subtitles are optional. In ClassicStyle
and ModernStyle
, using subtitles is necessary to make the header appear. In MacStyle
, the subtitle is shown as a text label just above the actual page.
The subtitle may be plain text or HTML, depending on the value of the subTitleFormat
property.
By default, this property contains an empty string.
See also
title
IgnoreSubTitles
Elements of a Wizard Page
- PySide6.QtWidgets.QWizardPage.setTitle(title)¶
- Parameters
title – str
This property holds the title of the page.
The title is shown by the QWizard
, above the actual page. All pages should have a title.
The title may be plain text or HTML, depending on the value of the titleFormat
property.
By default, this property contains an empty string.
See also
subTitle
Elements of a Wizard Page
- PySide6.QtWidgets.QWizardPage.subTitle()¶
- Return type
str
This property holds the subtitle of the page.
The subtitle is shown by the QWizard
, between the title and the actual page. Subtitles are optional. In ClassicStyle
and ModernStyle
, using subtitles is necessary to make the header appear. In MacStyle
, the subtitle is shown as a text label just above the actual page.
The subtitle may be plain text or HTML, depending on the value of the subTitleFormat
property.
By default, this property contains an empty string.
See also
title
IgnoreSubTitles
Elements of a Wizard Page
- PySide6.QtWidgets.QWizardPage.title()¶
- Return type
str
This property holds the title of the page.
The title is shown by the QWizard
, above the actual page. All pages should have a title.
The title may be plain text or HTML, depending on the value of the titleFormat
property.
By default, this property contains an empty string.
See also
subTitle
Elements of a Wizard Page
- PySide6.QtWidgets.QWizardPage.validatePage()¶
- Return type
bool
This virtual function is called by validateCurrentPage()
when the user clicks Next or Finish to perform some last-minute validation. If it returns true
, the next page is shown (or the wizard finishes); otherwise, the current page stays up.
The default implementation returns true
.
When possible, it is usually better style to disable the Next or Finish button (by specifying mandatory fields
or reimplementing isComplete()
) than to reimplement .
See also
- PySide6.QtWidgets.QWizardPage.wizard()¶
- Return type
Returns the wizard associated with this page, or None
if this page hasn’t been inserted into a QWizard
yet.
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.