PySide6.QtWidgets.QWizardPage¶
- class QWizardPage¶
QWizardPage类是向导页面的基类。更多…概要¶
属性¶
方法¶
def
__init__()def
buttonText()def
field()def
isCommitPage()def
isFinalPage()def
pixmap()def
registerField()def
setButtonText()def
setCommitPage()def
setField()def
setFinalPage()def
setPixmap()def
setSubTitle()def
setTitle()def
subTitle()def
title()def
wizard()
虚拟方法¶
def
cleanupPage()def
initializePage()def
isComplete()def
nextId()def
validatePage()
信号¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QWizard表示一个向导。每个页面是一个QWizardPage。当你创建自己的向导时,你可以直接使用QWizardPage,或者你可以对其进行子类化以获得更多控制。一个页面具有以下属性,这些属性由
QWizard渲染:一个title,一个subTitle,以及一组set of pixmaps。详情请参见Elements of a Wizard Page。一旦页面被添加到向导中(使用addPage()或setPage()),wizard()将返回一个指向关联的QWizard对象的指针。页面提供了五个可以重新实现的虚拟函数,以提供自定义行为:
initializePage()在用户点击向导的下一步按钮时被调用,用于初始化页面的内容。如果你想根据用户在前几页输入的内容来推导页面的默认值,这是需要重新实现的函数。cleanupPage()当用户点击向导的返回按钮时,调用此函数以重置页面的内容。validatePage()当用户点击“下一步”或“完成”时验证页面。通常用于在用户输入不完整或无效信息时显示错误消息。nextId()返回下一页的ID。这在创建 非线性 向导时非常有用,这些向导允许根据用户提供的信息选择不同的遍历路径。isComplete()被调用来确定“下一步”和/或“完成”按钮是否应该启用或禁用。如果你重新实现了isComplete(),也要确保在完成状态发生变化时发出completeChanged()。
通常情况下,向导中的“下一步”按钮和“完成”按钮是互斥的。如果
isFinalPage()返回true,则“完成”按钮可用;否则,“下一步”按钮可用。默认情况下,isFinalPage()仅在nextId()返回-1时为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- Access functions:
- property titleᅟ: str¶
此属性保存页面的标题。
标题由
QWizard显示在实际页面的上方。所有页面都应该有一个标题。标题可以是纯文本或HTML,具体取决于
titleFormat属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
subTitleElements of a Wizard Page- Access functions:
使用给定的
parent构建一个向导页面。当页面使用
addPage()或setPage()插入到向导中时,父级会自动设置为向导。另请参阅
- buttonText(which)¶
- Parameters:
哪个 –
WizardButton- Return type:
字符串
返回此页面上按钮
which的文本。如果使用
setButtonText()设置了文本,则返回此文本。否则,如果使用setButtonText()设置了文本,则返回此文本。默认情况下,按钮上的文本取决于
wizardStyle。例如,在macOS上,Next按钮被称为Continue。- cleanupPage()¶
当用户通过点击返回离开页面时(除非设置了
IndependentPages选项),此虚拟函数由cleanupPage()调用。默认实现将页面的字段重置为其原始值(在调用
initializePage()之前的值)。- completeChanged()¶
每当页面的完整状态(即
isComplete()的值)发生变化时,都会发出此信号。如果你重新实现了
isComplete(),请确保在isComplete()的值发生变化时发出completeChanged(),以确保QWizard更新其按钮的启用或禁用状态。另请参阅
- field(name)¶
- Parameters:
name – str
- Return type:
对象
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回名为
name的字段的值。此函数可用于访问向导任何页面上的字段。它相当于调用
wizard()->``name`` :meth:`` )。 示例:
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()¶
- Return type:
布尔
如果此页面是提交页面,则返回
true;否则返回false。另请参阅
- isComplete()¶
- Return type:
布尔
这个虚函数由
QWizard调用,用于确定“下一步”或“完成”按钮是否应启用或禁用。默认实现返回
true如果所有mandatory fields都已填写;否则,返回false。如果你重新实现这个函数,请确保在你的实现的其他部分中,每当isComplete()的值发生变化时,发出
completeChanged()。这确保了QWizard更新其按钮的启用或禁用状态。重新实现的示例可以在这里找到。- isFinalPage()¶
- Return type:
布尔
此函数由
QWizard调用,用于确定是否应为此页面显示完成按钮。默认情况下,如果没有下一页(即
nextId()返回-1),则返回true;否则,返回false。通过显式调用
setFinalPage(true),您可以允许用户执行“提前完成”。- nextId()¶
- Return type:
整数
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这个虚拟函数由
nextId()调用,用于确定当用户点击“下一步”按钮时显示哪个页面。返回值是下一页的ID,如果没有下一页则为-1。
默认情况下,此函数返回大于当前页面ID的最小ID,如果没有这样的ID,则返回-1。
通过重新实现此函数,您可以指定动态页面顺序。例如:
def nextId(self):
另请参阅
- pixmap(which)¶
- Parameters:
哪个 –
WizardPixmap- Return type:
返回为角色
which设置的 pixmap。也可以使用
setPixmap()为整个向导设置Pixmaps,在这种情况下,它们适用于所有未指定Pixmap的页面。另请参阅
setPixmap()pixmap()向导页面的元素- registerField(name, widget, property, changedSignal)¶
- Parameters:
name – str
widget –
QWidgetproperty – str
changedSignal –
PySideSignalInstance
- registerField(name, widget[, property=None[, changedSignal=None]])
- Parameters:
name – str
widget –
QWidgetproperty – str
changedSignal – str
创建一个名为
name的字段,该字段与给定widget的给定property相关联。从那时起,可以使用field()和setField()访问该属性。字段在整个向导中是全局的,使得任何单个页面都可以轻松访问由另一个页面存储的信息,而无需将所有逻辑放在
QWizard中,也不需要页面之间明确了解彼此。如果
name以星号 (*) 结尾,则该字段为必填字段。当页面有必填字段时,只有在所有必填字段都填写完毕后,Next 和/或 Finish 按钮才会启用。这需要指定一个changedSignal,以告诉QWizard重新检查必填字段存储的值。QWizard知道最常见的 Qt 小部件。对于这些(或它们的子类),您不需要指定property或changedSignal。下表列出了这些小部件:小部件
属性
变更通知信号
bool
checkedint
valueint
currentIndexQDateTime
dateTimeQString
textint
currentRowint
value你可以使用
setDefaultProperty()来向此表添加条目或覆盖现有条目。要认为一个字段“已填写”,
QWizard只需检查其当前值是否不等于其原始值(在调用initializePage()之前的值)。对于QLineEdit,它还会检查hasAcceptableInput()是否返回 true,以尊重任何验证器或掩码。QWizard的必填字段机制是为了方便而提供的。可以通过重新实现isComplete()来绕过它。- setButtonText(which, text)¶
- Parameters:
which –
WizardButton文本 – str
设置按钮上的文本为
text在此页面上。默认情况下,按钮上的文本取决于
wizardStyle,但可以使用setButtonText()为整个向导重新定义。- setCommitPage(commitPage)¶
- Parameters:
commitPage – 布尔值
如果
commitPage为true,则将此页面设置为提交页面;否则,将其设置为普通页面。提交页面是一个代表无法通过点击返回或取消来撤销操作的页面。
提交页面上的“下一步”按钮被替换为“提交”按钮。点击此按钮就像点击“下一步”一样,只是调用
next()。直接从提交页面进入的页面,其返回按钮将被禁用。
另请参阅
- setField(name, value)¶
- Parameters:
name – str
value – 对象
将名为
name的字段的值设置为value。此函数可用于设置向导任何页面上的字段。它等同于调用
wizard()->``name`` :meth:`` , value)。- setFinalPage(finalPage)¶
- Parameters:
finalPage – 布尔值
如果
finalPage为true,则明确将此页面设置为最终页面。调用setFinalPage(true)后,
isFinalPage()返回true,并且完成按钮可见(如果isComplete()返回true,则启用)。调用setFinalPage(false)后,如果
nextId()返回-1,则isFinalPage()返回true;否则,返回false。- setPixmap(which, pixmap)¶
- Parameters:
which –
WizardPixmappixmap –
QPixmap
将角色
which的 pixmap 设置为pixmap。pixmaps 由
QWizard在显示页面时使用。实际使用的 pixmaps 取决于wizard style。也可以使用
setPixmap()为整个向导设置Pixmaps,在这种情况下,它们适用于所有未指定Pixmap的页面。另请参阅
pixmap()setPixmap()向导页面的元素- setSubTitle(subTitle)¶
- Parameters:
副标题 – str
另请参阅
属性
subTitleᅟ的设置器。属性
titleᅟ的设置器。- subTitle()¶
- Return type:
字符串
另请参阅
属性
subTitleᅟ的获取器。- title()¶
- Return type:
字符串
另请参阅
属性
titleᅟ的获取器。- validatePage()¶
- Return type:
布尔
当用户点击“下一步”或“完成”时,此虚拟函数由
validateCurrentPage()调用,以执行一些最后的验证。如果它返回true,则显示下一页(或向导完成);否则,当前页面保持不变。默认实现返回
true。在可能的情况下,通常更好的做法是禁用“下一步”或“完成”按钮(通过指定
mandatory fields或重新实现isComplete()),而不是重新实现validatePage()。返回与此页面关联的向导,如果此页面尚未插入到
QWizard中,则返回None。