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
属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
title
IgnoreSubTitles
Elements of a Wizard Page
- Access functions:
- property titleᅟ: str¶
此属性保存页面的标题。
标题由
QWizard
显示在实际页面的上方。所有页面都应该有一个标题。标题可以是纯文本或HTML,具体取决于
titleFormat
属性的值。默认情况下,此属性包含一个空字符串。
另请参阅
subTitle
Elements 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 –
QWidget
property – str
changedSignal –
PySideSignalInstance
- registerField(name, widget[, property=None[, changedSignal=None]])
- Parameters:
name – str
widget –
QWidget
property – str
changedSignal – str
创建一个名为
name
的字段,该字段与给定widget
的给定property
相关联。从那时起,可以使用field()
和setField()
访问该属性。字段在整个向导中是全局的,使得任何单个页面都可以轻松访问由另一个页面存储的信息,而无需将所有逻辑放在
QWizard
中,也不需要页面之间明确了解彼此。如果
name
以星号 (*
) 结尾,则该字段为必填字段。当页面有必填字段时,只有在所有必填字段都填写完毕后,Next 和/或 Finish 按钮才会启用。这需要指定一个changedSignal
,以告诉QWizard
重新检查必填字段存储的值。QWizard
知道最常见的 Qt 小部件。对于这些(或它们的子类),您不需要指定property
或changedSignal
。下表列出了这些小部件:小部件
属性
变更通知信号
bool
checked
int
value
int
currentIndex
QDateTime
dateTime
QString
text
int
currentRow
int
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 –
WizardPixmap
pixmap –
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
。