QWizardPageclass is the base class for wizard pages. 更多 …
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
()
def
cleanupPage
()
def
initializePage
()
def
isComplete
()
def
nextId
()
def
validatePage
()
def
completeChanged
()
QWizardrepresents a wizard. Each page is aQWizardPage. When you create your own wizards, you can useQWizardPagedirectly, or you can subclass it for more control.A page has the following attributes, which are rendered by
QWizard: atitle,subTitle,和set of pixmaps。见Elements of a Wizard Pagefor details. Once a page is added to the wizard (usingaddPage()orsetPage()),wizard()returns a pointer to the associatedQWizard对象。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()返回true, Finish is available; otherwise, Next is available. By default,isFinalPage()is true only whennextId()returns -1. If you want to show Next and Final simultaneously for a page (letting the user perform an “early finish”), callsetFinalPage(true) on that page. For wizards that support early finishes, you might also want to set theHaveNextButtonOnLastPageandHaveFinishButtonOnEarlyPagesoptions 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,
QWizardsupports a"field" mechanismthat allows you to register a field (e.g., aQLineEdit) 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 inQWizardor having the pages know explicitly about each other. Fields are registered usingregisterField()and can be accessed at any time usingfield()andsetField().
QWizardPage
(
[
parent=None
]
)
¶
- param parent
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.
另请参阅
which
–
WizardButton
unicode
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.
PySide2.QtWidgets.QWizardPage.
cleanupPage
(
)
¶
此虚拟函数被调用由
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).
另请参阅
cleanupPage()
initializePage()
IndependentPages
PySide2.QtWidgets.QWizardPage.
completeChanged
(
)
¶
PySide2.QtWidgets.QWizardPage.
field
(
name
)
¶
name – unicode
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:` <PySide2.QtWidgets.QWizard.field>` ).
范例:
def initializePage(self):
className = field("className")
self.headerLineEdit.setText(className.lower() + ".h")
self.implementationLineEdit.setText(className.lower() + ".cpp")
self.outputDirLineEdit.setText(QDir.convertSeparators(QDir.tempPath()))
PySide2.QtWidgets.QWizardPage.
initializePage
(
)
¶
此虚拟函数被调用由
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")
self.headerLineEdit.setText(className.lower() + ".h")
self.implementationLineEdit.setText(className.lower() + ".cpp")
self.outputDirLineEdit.setText(QDir.convertSeparators(QDir.tempPath()))
The default implementation does nothing.
另请参阅
initializePage()
cleanupPage()
IndependentPages
PySide2.QtWidgets.QWizardPage.
isCommitPage
(
)
¶
bool
返回
true
if this page is a commit page; otherwise returns
false
.
另请参阅
PySide2.QtWidgets.QWizardPage.
isComplete
(
)
¶
bool
此虚拟函数被调用由
QWizard
to determine whether the Next or Finish button should be enabled or disabled.
默认实现返回
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
.
PySide2.QtWidgets.QWizardPage.
isFinalPage
(
)
¶
bool
此函数被调用由
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”.
另请参阅
isComplete()
HaveFinishButtonOnEarlyPages
PySide2.QtWidgets.QWizardPage.
nextId
(
)
¶
int
此虚拟函数被调用由
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:
int IntroPage::nextId() const
{
if (evaluateRadioButton->isChecked()) {
return LicenseWizard::Page_Evaluate;
} else {
return LicenseWizard::Page_Register;
}
}
另请参阅
PySide2.QtWidgets.QWizardPage.
pixmap
(
which
)
¶
which
–
WizardPixmap
QPixmap
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.
另请参阅
setPixmap()
pixmap()
Elements
of
a
Wizard
Page
PySide2.QtWidgets.QWizardPage.
registerField
(
name
,
widget
[
,
property=None
[
,
changedSignal=None
]
]
)
¶
name – unicode
widget
–
QWidget
特性 – str
changedSignal – str
Creates a field called
name
关联给定
特性
为给定
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.
若
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
特性
或
changedSignal
. The table below lists these widgets:
|
Widget |
特性 |
Change Notification Signal |
|
bool
|
||
|
int
|
||
|
int
|
||
|
|
||
|
int
|
||
|
int
|
可以使用
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()
.
PySide2.QtWidgets.QWizardPage.
setButtonText
(
which
,
text
)
¶
which
–
WizardButton
text – unicode
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()
.
PySide2.QtWidgets.QWizardPage.
setCommitPage
(
commitPage
)
¶
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.
另请参阅
PySide2.QtWidgets.QWizardPage.
setField
(
name
,
value
)
¶
name – unicode
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:` <PySide2.QtWidgets.QWizard.setField>` ,
value
).
PySide2.QtWidgets.QWizardPage.
setFinalPage
(
finalPage
)
¶
finalPage
–
bool
Explicitly sets this page to be final if
finalPage
为 true。
After calling (true),
isFinalPage()
返回
true
and the Finish button is visible (and enabled if
isComplete()
returns true).
After calling (false),
isFinalPage()
返回
true
if
nextId()
returns -1; otherwise, it returns
false
.
另请参阅
isFinalPage()
isComplete()
HaveFinishButtonOnEarlyPages
PySide2.QtWidgets.QWizardPage.
setPixmap
(
which
,
pixmap
)
¶
which
–
WizardPixmap
pixmap
–
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.
另请参阅
pixmap()
setPixmap()
Elements
of
a
Wizard
Page
PySide2.QtWidgets.QWizardPage.
setSubTitle
(
subTitle
)
¶
subTitle – unicode
另请参阅
PySide2.QtWidgets.QWizardPage.
subTitle
(
)
¶
unicode
另请参阅
PySide2.QtWidgets.QWizardPage.
title
(
)
¶
unicode
另请参阅
PySide2.QtWidgets.QWizardPage.
validatePage
(
)
¶
bool
此虚拟函数被调用由
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.
默认实现返回
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 .