- 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属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
titleIgnoreSubTitlesElements of a Wizard Page- 访问函数
- property titleᅟ: str#
此属性包含页面的标题。
标题由
QWizard显示,位于实际页面上方。所有页面都应该有标题。标题可以是纯文本或HTML,具体取决于
titleFormat属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
subTitleElements 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整数
currentIndexQDateTime
dateTimeQString
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)#
- 参数:
哪个 –
WizardPixmapUIKit –
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中。