- class QWizardPage#
QWizardPage
类是向导页面的基类。更多...概要#
属性#
subTitle属性
- 页面的副标题title属性
- 页面的标题
方法#
def
__init__()
def
buttonText()
def
field()
def
isCommitPage()
def
isFinalPage()
def
pixmap()
定义
setField()
定义
setPixmap()
定义
setTitle()
定义
subTitle()
定义
title()
定义
wizard()
虚方法#
定义
isComplete()
定义
nextId()
信号#
注意事项
此文档可能包含自动从 C++ 转换为 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您在翻译中发现问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来通知我们
详细描述#
QWizard
代表一个向导。每个页面都是QWizardPage
。当你创建自己的向导时,你可以直接使用QWizardPage
,或者你可以对其子类化以获得更多控制。页面具有以下属性,由
QWizard
渲染:一个标题
、一个副标题
和一个图片集合
。详细信息请参阅Wizard 页面 元素
。一旦页面被添加到向导中(使用addPage()
或setPage()
),wizard()
将返回关联的QWizard
对象的指针。页面提供了五个虚拟函数,可以重新实现以提供自定义行为。
调用
initializePage()
初始化页面内容,在用户点击向导的下一步按钮时。如果您想从用户在前面页面中输入的内容中派生页面的默认值,请实现此函数。调用
cleanupPage()
重置页面内容,当用户点击向导的上一页按钮时。调用
validatePage()
验证页面,当用户点击下一步或完成按钮时。通常用于显示错误消息,如果用户输入了不完整或不合法的信息。调用
nextId()
返回下一页的 ID。这在创建非线性向导时非常有用,它允许根据用户提供的信息选择不同的遍历路径。调用
isComplete()
决定下一步和/或完成按钮是否应启用或禁用。如果您实现isComplete()
,请确保每次完整状态变化时都发出completeChanged()
。
通常情况下,向导的“下一步”按钮和“完成”按钮是互斥的。如果
isFinalPage()
返回true
,则“完成”可用;否则,“下一步”可用。默认情况下,当nextId()
返回 -1 时,isFinalPage()
为 true。如果你想在一个页面同时显示“下一步”和“完成”(允许用户进行“提前完成”),请在该页面上调用setFinalPage
(设置为 true)。对于支持提前完成的向导,您可能还想在向导上设置HaveNextButtonOnLastPage
和HaveFinishButtonOnEarlyPages
选项。在许多向导中,一个页面的内容可能会影响后续页面的字段的默认值。为了方便页面间的通信,
QWizard
支持一种"field" 机制
,允许你在页面上注册一个字段(例如,一个QLineEdit
),并从任何页面访问其值。字段在整个向导中是全局的,使得任何单个页面都可以非常容易地访问其他页面存储的信息,无需在QWizard
中放置所有逻辑,或者页面对彼此有明确的了解。字段通过registerField()
注册,并可以使用field()
和setField()
在任何时间访问。另请参阅
QWizard
简单向导示例 许可证向导示例注意事项
可以使用属性直接操作,当使用
from __feature__ import true_property
时,或者通过访问器函数进行操作。- property subTitleᅟ: str#
此属性持有序页面的副标题。
副标题由
QWizard
显示,位于标题和实际页面之间。副标题是可选的。在ClassicStyle
和ModernStyle
,使用副标题是使标题出现所必需的。在MacStyle
中,副标题以文本标签的形式显示在实际页面上方。副标题可以是纯文本或HTML,具体取决于
subTitleFormat
属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
title
IgnoreSubTitles
Elements of a Wizard Page
- 访问函数
- property titleᅟ: str#
此属性包含页面的标题。
标题由
QWizard
显示,位于实际页面上方。所有页面都应该有标题。标题可以是纯文本或HTML,具体取决于
titleFormat
属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
subTitle
Elements of a Wizard Page
- 访问函数
使用给定的
parent
构造一个向导页面。当使用
addPage()
或setPage()
将页面插入向导时,父对象自动设置为向导。另请参阅
- buttonText(which)#
- 参数:
which –
WizardButton
- 返回类型::
str
返回此页按钮
which
上的文本。如果使用
setButtonText()
设置了文本,则返回此文本。否则,如果使用setButtonText()
设置了文本,则返回此文本。默认情况下,按钮上的文本取决于
wizardStyle
。例如,在 macOS 上,Next 按钮被称为 Continue。- cleanupPage()#
当用户通过点击“后退”离开页面时(除非设置了
IndependentPages
选项),此虚拟函数被cleanupPage()
调用。默认实现将页面的字段重置为其原始值(在调用
initializePage()
之前的值)。- completeChanged()#
每当页面的完成状态(即
isComplete()
的值)发生变化时,都会发出此信号。如果您重新实现了
isComplete()
,请确保每当isComplete()
的值发生变化时,发出 completeChanged() 信号,以确保QWizard
更新其按钮的启用或禁用状态。另请参阅
- field(name)#
- 参数:
name - 字符串
- 返回类型::
对象
警告
本节包含从C++自动转换为Python的代码段,可能包含错误。
返回名为
name
的字段值。此函数可以用于访问向导任何页面上的字段。它相当于调用
wizard()
-> ``name`` :meth:` <PySide6.QtWidgets.QWizard.field>`).示例
emailAddress = field("details.email").toString() licenseText = tr("<u>First-Time License Agreement:</u> " "You can use self software subject to the license " "you will receive by email sent to %1.").arg(emailAddress)
- initializePage()#
警告
本节包含从C++自动转换为Python的代码段,可能包含错误。
此虚函数由
initializePage()
调用,以在页面显示之前将其准备好,无论是由于调用restart()
,还是用户单击下一步所导致。(但是,如果设置了IndependentPages
选项,则此函数仅在页面首次显示时调用。)通过重新实现此函数,您可以确保页面字段根据前面的字段正确初始化。例如
def initializePage(self): licenseText = QString() if wizard().hasVisitedPage(LicenseWizard.Page_Evaluate): licenseText = tr("<u>Evaluation License Agreement:</u> " "You can use self software for 30 days and make one " "backup, but you are not allowed to distribute it.") elif wizard().hasVisitedPage(LicenseWizard.Page_Details): emailAddress = field("details.email").toString() licenseText = tr("<u>First-Time License Agreement:</u> " "You can use self software subject to the license " "you will receive by email sent to %1.").arg(emailAddress) else: licenseText = tr("<u>Upgrade License Agreement:</u> " "This software is licensed under the terms of your " "current license.") bottomLabel.setText(licenseText)
默认实现不执行任何操作。
- isCommitPage()#
- 返回类型::
布尔值
如果此页面是提交页面,则返回
true
;否则返回false
。另请参阅
- isComplete()#
- 返回类型::
布尔值
这个虚函数由
QWizard
调用来确定“下一页”或“完成”按钮是否应该启用或禁用。默认实现返回
true
,如果所有必需的字段
都填写了;否则返回false
。如果您重写此函数,确保在 isComplete() 的值变化时从您实现的其余部分发出
completeChanged()
。这将确保QWizard
更新其按钮的启用或禁用状态。重写的示例可以在 这里 查看。- isFinalPage()#
- 返回类型::
布尔值
此函数由
QWizard
调用来确定是否显示该页面的“完成”按钮。默认情况下,如果没有下一页(即,
nextId()
返回 -1),它返回true
;否则返回false
。通过显式调用
setFinalPage
(true),您可以允许用户执行“提前完成”。- nextId()#
- 返回类型::
int
警告
本节包含从C++自动转换为Python的代码段,可能包含错误。
这个虚函数由
nextId()
调用来找出当用户单击“下一页”按钮时要显示的页面。返回值是下一页的 ID,如果没有下一页则返回 -1。
默认情况下,此函数返回比当前页面的 ID 稍大的最低 ID,如果没有这样的 ID 则返回 -1。
通过重写此函数,您可以指定动态页面顺序。例如
def nextId(self):
另请参阅
- pixmap(which)#
- 参数:
哪个 –
WizardPixmap
- 返回类型::
返回用于角色
which
设置的位图。此外,还可以使用
setPixmap()
方法为整个向导设置位图,在这种情况下,它们适用于未指定位图的全部页面。另请参阅
setPixmap()
pixmap()
Wizard Page Elements
- registerField(name, widget[, property=None[, changed_signal=None]])#
- 参数:
name - 字符串
小部件 –
QWidget
属性 – str
已更改的信号 - str
创建一个与指定的小部件的给定
property
相关联的名为name
的字段。从那时起,该属性可以通过field()
和setField()
使用。字段对于整个向导全局有效,使得任何单个页面都可以访问其他页面存储的信息,而无需将所有逻辑放入
QWizard
或让页面明确知道彼此。如果
name
以星号 (*
) 结尾,则该字段是必填字段。当一个页面有必填字段时,只有当所有必填字段都填写后,Next 和/或 Finish 按钮才会启用。这需要指定一个changedSignal
,以便告诉QWizard
重新检查必填字段存储的值。QWizard
识别最常用的 Qt 小部件。对于这些(或它们的子类),您不需要指定property
或changedSignal
。下表列出了这些小部件小部件
属性
更改通知信号
布尔值
checked
整数
value
整数
currentIndex
QDateTime
dateTime
QString
text
整数
currentRow
整数
value
可以使用
setDefaultProperty()
向此表添加条目或覆盖现有条目。为了考虑一个字段“填写”,
QWizard
简单地检查它们的当前值是否不等于它们的原始值(在调用initializePage()
之前的值)。对于QLineEdit
,它还检查hasAcceptableInput()
返回 true,以尊重任何验证器或掩码。QWizard
的必填字段机制提供了便利。可以通过重写isComplete()
来绕过它。- registerField(name, widget, property, changedSignal)
- 参数:
name - 字符串
小部件 –
QWidget
属性 – str
changedSignal –
PySideSignalInstance
- setButtonText(which, text)#
- 参数:
which –
WizardButton
文本 – 字符串
设置按钮
which
上的文本为此页面上的文本。默认情况下,按钮上的文本取决于
wizardStyle
,但可以使用setButtonText()
方法在整体上为向导重新定义文本。- setCommitPage(commitPage)#
- 参数:
commitPage – 布尔值
如果
commitPage
为true,则将此页面设置为提交页面;否则,将其设置为普通页面。提交页面表示无法通过点击后退或取消来撤销的操作页面。
提交按钮替换了提交页面上的下一个按钮。点击此按钮将简单地调用
next()
,与点击下一个按钮一样。直接从提交页面进入的页面的后退按钮将被禁用。
另请参阅
- setField(name, value)#
- 参数:
name - 字符串
value – 对象
将名为
name
的字段值设置为value
。该函数可用于设置向导中任何页面的字段。它等效于调用
wizard()
-> `name` :meth:`PySide6.QtWidgets.QWizard.setField` ,value
)。- setFinalPage(finalPage)#
- 参数:
finalPage – 布尔值
显式设置此页面为最终页面,如果
finalPage
为true。调用 setFinalPage(true) 后,
isFinalPage()
返回true
,并且完成按钮可见(如果isComplete()
返回 true,则该按钮被启用)。调用 setFinalPage(false) 后,如果
nextId()
返回 -1,则isFinalPage()
返回true
;否则,返回false
。- setPixmap(which, pixmap)#
- 参数:
哪个 –
WizardPixmap
UIKit –
QPixmap
为角色
which
设置pixmap
。当
QWizard
显示页面时将使用这些原画。实际使用的原画取决于wizard style
。此外,还可以使用
setPixmap()
方法为整个向导设置位图,在这种情况下,它们适用于未指定位图的全部页面。另请参阅
pixmap()
setPixmap()
Elements of a Wizard Page
- setSubTitle(subTitle)#
- 参数:
subTitle – str
另请参阅
设置属性
subTitle
的值。设置属性
title
的值。- subTitle()#
- 返回类型::
str
另请参阅
属性
subTitleᅟ
的获取器。- title()#
- 返回类型::
str
另请参阅
属性
titleᅟ
的获取器。- validatePage()#
- 返回类型::
布尔值
这个虚拟函数在用户点击“下一步”或“完成”按钮时被
validateCurrentPage()
调用,以执行一些最后的验证。如果它返回true
,则显示下一页(或向导完成);否则,当前页保持显示。默认实现返回
true
。如果可能,通常禁用“下一步”或“完成”按钮(通过指定
mandatory fields
或重新实现isComplete()
)优于重新实现 validatePage()。返回与此页关联的向导,或
None
如果该页尚未插入到QWizard
中。