PySide6.QtWidgets.QWizard¶
- class QWizard¶
-
概要¶
属性¶
currentIdᅟ
- 当前页面的IDoptionsᅟ
- 影响向导外观和感觉的各种选项startIdᅟ
- 第一页的IDsubTitleFormatᅟ
- 页面副标题使用的文本格式titleFormatᅟ
- 页面标题使用的文本格式wizardStyleᅟ
- 向导的外观和感觉
方法¶
def
__init__()
def
addPage()
def
button()
def
buttonText()
def
currentId()
def
currentPage()
def
field()
def
hasVisitedPage()
def
options()
def
page()
def
pageIds()
def
pixmap()
def
removePage()
def
setButton()
def
setButtonText()
def
setField()
def
setOption()
def
setOptions()
def
setPage()
def
setPixmap()
def
setSideWidget()
def
setStartId()
def
setTitleFormat()
def
setWizardStyle()
def
sideWidget()
def
startId()
def
subTitleFormat()
def
testOption()
def
titleFormat()
def
visitedIds()
def
wizardStyle()
虚拟方法¶
def
cleanupPage()
def
initializePage()
def
nextId()
插槽¶
def
back()
def
next()
def
restart()
def
setCurrentId()
信号¶
def
helpRequested()
def
pageAdded()
def
pageRemoved()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
向导(在macOS上也被称为助手)是一种特殊类型的输入对话框,由一系列页面组成。向导的目的是逐步引导用户完成一个过程。向导对于用户可能觉得难以学习的复杂或不常见的任务非常有用。
QWizard
继承自QDialog
并代表一个向导。每个页面都是一个QWizardPage
(一个QWidget
的子类)。要创建你自己的向导,你可以直接使用这些类,或者你可以对它们进行子类化以获得更多的控制。一个简单的例子¶
以下示例说明了如何创建向导页面并将其添加到向导中。有关更高级的示例,请参阅License Wizard。
def createIntroPage(): page = QWizardPage() page.setTitle("Introduction") label = QLabel("This wizard will help you register your copy "() "of Super Product Two.") label.setWordWrap(True) layout = QVBoxLayout() layout.addWidget(label) page.setLayout(layout) return page def createRegistrationPage(): ... def createConclusionPage(): ... if __name__ == "__main__": app = QApplication([]) #ifndef QT_NO_TRANSLATION translatorFileName = "qtbase_" translatorFileName += QLocale.system().name() translator = QTranslator(app) if translator.load(translatorFileName, QLibraryInfo.path(QLibraryInfo.TranslationsPath)): app.installTranslator(translator) #endif wizard = QWizard() wizard.addPage(createIntroPage()) wizard.addPage(createRegistrationPage()) wizard.addPage(createConclusionPage()) wizard.setWindowTitle("Trivial Wizard") wizard.show() sys.exit(app.exec())
向导外观和感觉¶
QWizard
支持四种向导外观:你可以明确地设置要使用的外观,使用
setWizardStyle()
(例如,如果你希望在所有平台上使用相同的外观)。注意:
AeroStyle
仅在启用了透明效果的 Windows Vista 系统上有效。当不满足此条件时,ModernStyle
将作为备用方案使用。除了向导样式外,还有几个选项可以控制向导的外观和感觉。这些选项可以使用
setOption()
或setOptions()
来设置。例如,HaveHelpButton
使QWizard
显示一个帮助按钮以及其他向导按钮。你甚至可以使用
setButtonLayout()
将向导按钮的顺序更改为任意顺序,并且你可以在按钮行中添加最多三个自定义按钮(例如,打印按钮)。这是通过调用setButton()
或setButtonText()
与CustomButton1
、CustomButton2
或CustomButton3
来设置按钮,并通过启用HaveCustomButton1
、HaveCustomButton2
或HaveCustomButton3
选项来实现的。每当用户点击自定义按钮时,customButtonClicked()
会被触发。例如:wizard().setButtonText(QWizard.CustomButton1, tr("Print")) wizard().setOption(QWizard.HaveCustomButton1, True) connect(wizard(), QWizard.customButtonClicked, self.printButtonClicked)
向导页面的元素¶
向导由一系列
QWizardPage
组成。在任何时候,只显示一个页面。一个页面具有以下属性:下图展示了
QWizard
如何呈现这些属性,假设它们都存在并且使用了ModernStyle
:当设置了
subTitle
时,QWizard
会在标题中显示它,在这种情况下,它还会使用BannerPixmap
和LogoPixmap
来装饰标题。WatermarkPixmap
显示在左侧,标题下方。在底部,有一排按钮允许用户浏览页面。页面本身(
QWizardPage
小部件)占据了标题、水印和按钮行之间的区域。通常,页面是一个安装了QGridLayout
的QWizardPage
,带有标准的子小部件(QLabel
、QLineEdit
等)。如果向导的样式是
MacStyle
,页面看起来会完全不同:水印、横幅和徽标的像素图被
MacStyle
忽略。如果设置了BackgroundPixmap
,它将用作向导的背景;否则,将使用默认的“助手”图像。标题和副标题通过在各个页面上调用
setTitle()
和setSubTitle()
来设置。它们可以是纯文本或HTML(参见titleFormat
和subTitleFormat
)。可以使用setPixmap()
为整个向导全局设置pixmaps,或者使用setPixmap()
在每个页面上单独设置。注册和使用字段¶
在许多向导中,页面的内容可能会影响后续页面字段的默认值。为了方便页面之间的通信,
QWizard
支持一种“字段”机制,允许您在页面上注册一个字段(例如,QLineEdit
),并从任何页面访问其值。还可以指定必填字段(即用户必须填写才能进入下一页的字段)。要注册一个字段,请调用
registerField()
字段。例如:registerField("evaluate.name*", nameLineEdit) registerField("evaluate.email*", emailLineEdit)
上述代码注册了三个字段,
className
、baseClass
和qobjectMacro
,它们与三个子部件相关联。className
旁边的星号(*
)表示这是一个必填字段。任何页面的字段都可以从其他页面访问。例如:
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)
在这里,我们调用
field()
来访问details.email
字段的内容(该字段在DetailsPage
中定义),并使用它来初始化ConclusionPage
。字段的内容以QVariant的形式返回。当我们使用
registerField()
创建一个字段时,我们会传递一个唯一的字段名称和一个小部件。我们还可以提供一个Qt属性名称和一个“changed”信号(当属性更改时发出的信号)作为第三和第四个参数;然而,对于最常见的Qt小部件,如QLineEdit
、QCheckBox
和QComboBox
,这是不必要的,因为QWizard
知道要查找哪些属性。如果在注册属性时名称后附加了星号(
*
),则该字段为必填字段。当页面有必填字段时,只有在所有必填字段都填写完毕后,下一步和/或完成按钮才会启用。要认为一个字段“已填写”,
QWizard
只需检查该字段的当前值是否不等于原始值(即调用initializePage()
时的值)。对于QLineEdit
和QAbstractSpinBox
的子类,QWizard
还会检查hasAcceptableInput()
是否返回 true,以尊重任何验证器或掩码。QWizard
的必填字段机制是为了方便而提供的。一个更强大(但也更繁琐)的替代方法是重新实现isComplete()
,并在页面变为完成或不完成时发出completeChanged()
信号。Next和/或Finish按钮的启用/禁用状态是执行用户输入验证的一种方式。另一种方式是重新实现
validateCurrentPage()
(或validatePage()
)以执行一些最后的验证(如果用户输入了不完整或无效的信息,则显示错误消息)。如果函数返回true
,则显示下一页(或向导完成);否则,当前页面保持不变。创建线性向导¶
大多数向导具有线性结构,页面1之后是页面2,依此类推,直到最后一页。Trivial Wizard示例就是这样的向导。使用
QWizard
,线性向导通过实例化QWizardPage
并使用addPage()
插入它们来创建。默认情况下,页面按照它们被添加的顺序显示。例如:wizard = QWizard() wizard.addPage(createIntroPage()) wizard.addPage(createRegistrationPage()) wizard.addPage(createConclusionPage())
当页面即将显示时,
QWizard
调用initializePage()
(它又调用initializePage()
)来用默认值填充页面。默认情况下,此函数不执行任何操作,但可以重新实现它,以根据其他页面的字段初始化页面的内容(参见example above
)。如果用户按下返回键,
cleanupPage()
会被调用(这又会调用cleanupPage()
)。默认实现将页面的字段重置为它们的原始值(即调用initializePage()
之前的值)。如果你希望返回键不破坏用户输入的值,只需启用IndependentPages
选项。创建非线性向导¶
一些向导更为复杂,因为它们允许根据用户提供的信息选择不同的遍历路径。许可证向导示例说明了这一点。它提供了多个向导页面;根据所选的选项,用户可以到达不同的页面。
在复杂的向导中,页面通过ID进行标识。这些ID通常使用枚举定义。例如:
class LicenseWizard(QWizard): ... enum { Page_Intro, Page_Evaluate, Page_Register, Page_Details, Page_Conclusion } ... enum { Page_Intro, Page_Evaluate, Page_Register, Page_Details, Page_Conclusion }
页面使用
setPage()
插入,它需要一个ID和一个QWizardPage
(或其子类)的实例:def __init__(self, parent): super().__init__(parent) setPage(Page_Intro, IntroPage()) setPage(Page_Evaluate, EvaluatePage()) setPage(Page_Register, RegisterPage()) setPage(Page_Details, DetailsPage()) setPage(Page_Conclusion, ConclusionPage()) ... self.helpRequested.connect(self.showHelp)
默认情况下,页面按ID递增顺序显示。为了提供依赖于用户选择选项的动态顺序,我们必须重新实现
nextId()
。例如:def nextId(self): def nextId(self): return LicenseWizard.Page_Conclusion def nextId(self): if upgradeKeyLineEdit.text().isEmpty(): return LicenseWizard.Page_Details else: return LicenseWizard.Page_Conclusion def nextId(self): return LicenseWizard.Page_Conclusion def nextId(self): return -1
也可以将所有逻辑放在一个地方,在
nextId()
的重新实现中。例如:def nextId(self): switch (currentId()) { elif ret == Page_Intro: if field("intro.evaluate").toBool(): return Page_Evaluate else: return Page_Register elif ret == Page_Evaluate: return Page_Conclusion elif ret == Page_Register: if field("register.upgradeKey").toString().isEmpty(): return Page_Details else: return Page_Conclusion elif ret == Page_Details: return Page_Conclusion elif ret == Page_Conclusion: else: return -1
要从ID不是最低的页面开始,请调用
setStartId()
。要测试页面是否已被访问,请调用
hasVisitedPage()
。例如: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)
另请参阅
QWizardPage
简单向导示例 许可证向导示例- class WizardButton¶
此枚举指定向导中的按钮。
常量
描述
QWizard.BackButton
后退按钮(在macOS上为返回)
QWizard.NextButton
下一步按钮(在macOS上为继续)
QWizard.CommitButton
提交按钮
QWizard.FinishButton
完成按钮(在macOS上显示为Done)
QWizard.CancelButton
取消按钮(另请参阅
NoCancelButton
)QWizard.HelpButton
帮助按钮(另请参阅
HaveHelpButton
)QWizard.CustomButton1
第一个用户定义的按钮(另见
HaveCustomButton1
)QWizard.CustomButton2
第二个用户定义的按钮(另见
HaveCustomButton2
)QWizard.CustomButton3
第三个用户定义的按钮(另见
HaveCustomButton3
)以下值仅在调用
setButtonLayout()
时有用:常量
描述
QWizard.Stretch
按钮布局中的水平拉伸
- class WizardPixmap¶
此枚举指定可以与页面关联的像素图。
常量
描述
QWizard.WatermarkPixmap
在
ClassicStyle
或ModernStyle
页面左侧的高大像素图QWizard.LogoPixmap
在
ClassicStyle
或ModernStyle
页面标题右侧的小图标QWizard.BannerPixmap
占据
ModernStyle
页面标题背景的像素图QWizard.BackgroundPixmap
占据
MacStyle
向导背景的像素图另请参阅
setPixmap()
setPixmap()
向导页面的元素
- class WizardStyle¶
此枚举指定了
QWizard
支持的不同外观。常量
描述
QWizard.ClassicStyle
经典Windows外观
QWizard.ModernStyle
现代Windows外观
QWizard.MacStyle
macOS 外观
QWizard.AeroStyle
Windows Aero 外观
另请参阅
setWizardStyle()
WizardOption
Wizard 外观 和 感觉
- class WizardOption¶
(继承自
enum.Flag
) 此枚举指定了影响向导外观和感觉的各种选项。常量
描述
QWizard.IndependentPages
页面之间相互独立(即它们不相互派生值)。
QWizard.IgnoreSubTitles
不显示任何副标题,即使它们已被设置。
QWizard.ExtendedWatermarkPixmap
将任何
WatermarkPixmap
扩展到窗口的边缘。QWizard.NoDefaultButton
不要将“下一步”或“完成”按钮设为对话框的
默认 按钮
。QWizard.NoBackButtonOnStartPage
在起始页面上不显示返回按钮。
QWizard.NoBackButtonOnLastPage
在最后一页不显示返回按钮。
QWizard.DisabledBackButtonOnLastPage
在最后一页禁用后退按钮。
QWizard.HaveNextButtonOnLastPage
在最后一页显示(禁用的)下一步按钮。
QWizard.HaveFinishButtonOnEarlyPages
在非最后一页显示(禁用的)完成按钮。
QWizard.NoCancelButton
不显示取消按钮。
QWizard.CancelButtonOnLeft
将取消按钮放在后退按钮的左侧(而不是完成或下一步按钮的右侧)。
QWizard.HaveHelpButton
显示帮助按钮。
QWizard.HelpButtonOnRight
将帮助按钮放在按钮布局的最右侧(而不是最左侧)。
QWizard.HaveCustomButton1
显示第一个用户定义的按钮(
CustomButton1
)。QWizard.HaveCustomButton2
显示第二个用户定义的按钮(
CustomButton2
)。QWizard.HaveCustomButton3
显示第三个用户定义的按钮(
CustomButton3
)。QWizard.NoCancelButtonOnLastPage
在最后一页不显示取消按钮。
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property currentIdᅟ: int¶
此属性保存当前页面的ID。
此属性不能直接设置。要更改当前页面,请调用
next()
、back()
或restart()
。默认情况下,此属性的值为-1,表示当前未显示任何页面。
另请参阅
- Access functions:
- property optionsᅟ: Combination of QWizard.WizardOption¶
此属性包含影响向导外观和感觉的各种选项。
默认情况下,以下选项已设置(取决于平台):
Windows:
HelpButtonOnRight
.macOS:
NoDefaultButton
和NoCancelButton
。X11 和 QWS(嵌入式 Linux 的 Qt):无。
另请参阅
- Access functions:
- property startIdᅟ: int¶
此属性保存第一页的ID。
如果未明确设置此属性,则此属性默认为此向导中的最低页面ID,如果尚未插入任何页面,则为-1。
- Access functions:
- property subTitleFormatᅟ: Qt.TextFormat¶
此属性保存页面副标题使用的文本格式。
默认格式是 Qt::AutoText。
另请参阅
- Access functions:
- property titleFormatᅟ: Qt.TextFormat¶
此属性保存页面标题使用的文本格式。
默认格式是 Qt::AutoText。
另请参阅
- Access functions:
- property wizardStyleᅟ: QWizard.WizardStyle¶
此属性保存向导的外观和感觉。
默认情况下,
QWizard
在启用了 alpha 合成的 Windows Vista 系统上使用AeroStyle
,无论当前的小部件样式如何。如果不是这种情况,默认的向导样式取决于当前的小部件样式,如下所示:如果当前的小部件样式是 QMacStyle,则默认使用MacStyle
;如果当前的小部件样式是 QWindowsStyle,则默认使用ModernStyle
;在所有其他情况下,默认使用ClassicStyle
。另请参阅
Wizard Look and Feel
options
- Access functions:
- __init__([parent=None[, flags=Qt.WindowFlags()]])¶
- Parameters:
parent –
QWidget
flags –
WindowType
的组合
使用给定的
parent
和窗口flags
构建一个向导。另请参阅
windowFlags()
- addPage(page)¶
- Parameters:
页面 –
QWizardPage
- Return type:
整数
将给定的
page
添加到向导中,并返回页面的ID。ID保证大于
QWizard
中迄今为止的任何其他ID。另请参阅
- back()¶
返回上一页。
这相当于按下返回按钮。
- button(which)¶
- Parameters:
哪个 –
WizardButton
- Return type:
返回与角色
which
对应的按钮。- buttonText(which)¶
- Parameters:
哪个 –
WizardButton
- Return type:
字符串
返回按钮上的文本
which
。如果已经使用
setButtonText()
设置了文本,则返回此文本。默认情况下,按钮上的文本取决于
wizardStyle
。例如,在macOS上,Next按钮被称为Continue。- cleanupPage(id)¶
- Parameters:
id – int
这个虚函数由
QWizard
调用,用于在用户通过点击返回离开页面id
之前进行清理(除非设置了IndependentPages
选项)。默认实现调用
cleanupPage()
在页面(id
)上。- currentId()¶
- Return type:
整数
另请参阅
属性
currentIdᅟ
的获取器。- currentIdChanged(id)¶
- Parameters:
id – int
当当前页面更改时,会发出此信号,并带有新的当前
id
。另请参阅
属性
currentIdᅟ
的通知信号。- currentPage()¶
- Return type:
返回指向当前页面的指针,如果没有当前页面(例如,在向导显示之前),则返回
None
。这相当于调用 page(
currentId()
)。另请参阅
- customButtonClicked(which)¶
- Parameters:
which – 整数
当用户点击自定义按钮时,会发出此信号。
which
可以是CustomButton1
、CustomButton2
或CustomButton3
。默认情况下,不显示自定义按钮。调用
setOption()
并使用HaveCustomButton1
、HaveCustomButton2
或HaveCustomButton3
来显示一个按钮,然后使用setButtonText()
或setButton()
来配置它。另请参阅
- field(name)¶
- Parameters:
name – str
- Return type:
对象
返回名为
name
的字段的值。此函数可用于访问向导任何页面上的字段。
- hasVisitedPage(id)¶
- Parameters:
id – int
- Return type:
布尔
如果页面历史包含页面
id
,则返回true
;否则,返回false
。按下返回键会将当前页面再次标记为“未访问”。
另请参阅
- helpRequested()¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
当用户点击帮助按钮时,会发出此信号。
默认情况下,不显示帮助按钮。调用
setOption
(HaveHelpButton
, true) 来显示一个。示例:
def __init__(self, parent): super().__init__(parent) ... setOption(HaveHelpButton, True) self.helpRequested.connect(self.showHelp) ... self.helpRequested.connect(self.showHelp) def showHelp(self): lastHelpMessage = QString() message = QString() switch (currentId()) { elif role == Page_Intro: message = tr("The decision you make here will affect which page you " "get to see next.") break ... else: message = tr("This help is likely not to be of any help.") QMessageBox.information(self, tr("License Wizard Help"), message) QMessageBox.information(self, tr("License Wizard Help"), message)
- initializePage(id)¶
- Parameters:
id – int
这个虚函数由
QWizard
调用,用于在页面id
显示之前进行准备,无论是由于调用了restart()
,还是用户点击了下一步。(但是,如果设置了IndependentPages
选项,则此函数仅在页面首次显示时调用。)通过重新实现此函数,您可以确保页面的字段根据之前页面的字段正确初始化。
默认实现调用页面(
id
)上的initializePage()
。- next()¶
前进到下一页。
这相当于按下“下一步”或“提交”按钮。
- nextId()¶
- Return type:
整数
当用户点击下一步按钮时,
QWizard
会调用此虚拟函数来确定要显示的页面。返回值是下一页的ID,如果没有下一页则为-1。
默认实现调用
nextId()
在currentPage()
上。通过重新实现此函数,您可以指定动态页面顺序。
另请参阅
- options()¶
- Return type:
WizardOption
的组合
另请参阅
属性
optionsᅟ
的获取器。- page(id)¶
- Parameters:
id – int
- Return type:
返回具有给定
id
的页面,如果没有这样的页面,则返回None
。- pageAdded(id)¶
- Parameters:
id – int
每当向向导添加页面时,都会发出此信号。页面的
id
作为参数传递。- pageIds()¶
- Return type:
整数列表
返回页面ID的列表。
- pageRemoved(id)¶
- Parameters:
id – int
每当从向导中移除页面时,都会发出此信号。页面的
id
作为参数传递。另请参阅
- pixmap(which)¶
- Parameters:
哪个 –
WizardPixmap
- Return type:
返回为角色
which
设置的 pixmap。默认情况下,唯一设置的像素图是macOS上的
BackgroundPixmap
。另请参阅
setPixmap()
pixmap()
向导页面的元素
- removePage(id)¶
- Parameters:
id – int
移除具有给定
id
的页面。如有必要,将调用cleanupPage()
。- restart()¶
在起始页重新启动向导。当显示向导时,此函数会自动调用。
另请参阅
- setButton(which, button)¶
- Parameters:
which –
WizardButton
按钮 –
QAbstractButton
将对应于角色
which
的按钮设置为button
。要向向导添加额外的按钮(例如,打印按钮),一种方法是使用
CustomButton1
到CustomButton3
调用setButton(),并使用HaveCustomButton1
到HaveCustomButton3
选项使按钮可见。- setButtonLayout(layout)¶
- Parameters:
布局 – .QWizard.WizardButton 的列表
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置按钮显示的顺序为
layout
,其中layout
是WizardButton
的列表。默认布局取决于设置的选项(例如,是否
HelpButtonOnRight
)。如果您需要比options
提供的更多按钮布局控制,可以调用此函数。您可以使用
Stretch
在布局中指定水平拉伸。示例:
def __init__(self, parent): super().__init__(parent) ... layout = QList() layout << QWizard.Stretch << QWizard.BackButton << QWizard.CancelButton << QWizard.NextButton << QWizard.FinishButton setButtonLayout(layout) ...
- setButtonText(which, text)¶
- Parameters:
which –
WizardButton
文本 – str
设置按钮上的文本为
text
。默认情况下,按钮上的文本取决于
wizardStyle
。例如,在macOS上,Next按钮被称为Continue。要向向导添加额外的按钮(例如,打印按钮),一种方法是使用
CustomButton1
、CustomButton2
或CustomButton3
调用setButtonText()来设置它们的文本,并使用HaveCustomButton1
、HaveCustomButton2
和/或HaveCustomButton3
选项使按钮可见。按钮文本也可以使用
setButtonText()
在每页基础上设置。- setCurrentId(id)¶
- Parameters:
id – int
将
currentId
设置为id
,而不访问currentId
和id
之间的页面。如果页面未更改,则返回
向导没有页面
当前页面无效
给定页面等于
currentId()
给定的页面超出范围
注意:如果页面已被向前跳过且
id
为0,页面访问历史将被删除另请参阅
属性
currentIdᅟ
的设置器。- setDefaultProperty(className, property, changedSignal)¶
- Parameters:
className – str
property – str
changedSignal – str
将
className
的默认属性设置为property
,并将相关的更改信号设置为changedSignal
。当
className
(或其子类之一)的实例传递给registerField()
且未指定属性时,将使用默认属性。QWizard
知道最常见的 Qt 小部件。对于这些(或它们的子类),您不需要指定property
或changedSignal
。下表列出了这些小部件:小部件
属性
变更通知信号
bool
checked
int
value
int
currentIndex
QDateTime
dateTime
QString
text
int
currentRow
int
value
另请参阅
- setField(name, value)¶
- Parameters:
name – str
value – 对象
将名为
name
的字段的值设置为value
。此函数可用于设置向导任何页面上的字段。
- setOption(option[, on=true])¶
- Parameters:
选项 –
WizardOption
on – 布尔值
如果
on
为真,则启用给定的option
;否则,清除给定的option
。- setOptions(options)¶
- Parameters:
options –
WizardOption
的组合
另请参阅
属性
optionsᅟ
的设置器。- setPage(id, page)¶
- Parameters:
id – int
page –
QWizardPage
将给定的
page
添加到具有给定id
的向导中。- setPixmap(which, pixmap)¶
- Parameters:
which –
WizardPixmap
pixmap –
QPixmap
将角色
which
的 pixmap 设置为pixmap
。pixmaps 由
QWizard
在显示页面时使用。实际使用的 pixmaps 取决于wizard style
。也可以使用
setPixmap()
为特定页面设置Pixmaps。另请参阅
pixmap()
setPixmap()
向导页面的元素
将给定的
widget
设置为显示在向导的左侧。对于使用WatermarkPixmap
(ClassicStyle
和ModernStyle
)的样式,侧边部件显示在水印的顶部;对于其他样式或未提供水印时,侧边部件显示在向导的左侧。传递
None
不显示侧边小部件。当
widget
不是None
时,向导会重新设置其父级。任何之前的侧边小部件都被隐藏了。
您可以在不同时间使用相同的widget调用setSideWidget()。
除非在设置其他侧边小部件(或
None
)后单独重新设置小部件的父级,否则此处设置的所有小部件将在向导销毁时被删除。默认情况下,没有侧边小部件。
另请参阅
属性
startIdᅟ
的设置器。- setSubTitleFormat(format)¶
- Parameters:
format –
TextFormat
另请参阅
属性
subTitleFormatᅟ
的设置器。- setTitleFormat(format)¶
- Parameters:
format –
TextFormat
另请参阅
属性
titleFormatᅟ
的设置器。- setWizardStyle(style)¶
- Parameters:
样式 –
WizardStyle
另请参阅
属性
wizardStyleᅟ
的设置器。返回向导左侧的小部件或
None
。默认情况下,没有侧边小部件。
另请参阅
- startId()¶
- Return type:
整数
另请参阅
属性
startIdᅟ
的获取器。- subTitleFormat()¶
- Return type:
另请参阅
属性
subTitleFormatᅟ
的获取器。- testOption(option)¶
- Parameters:
选项 –
WizardOption
- Return type:
布尔
如果给定的
option
已启用,则返回true
;否则,返回false。- titleFormat()¶
- Return type:
另请参阅
属性
titleFormatᅟ
的获取器。- validateCurrentPage()¶
- Return type:
布尔
当用户点击下一步或完成时,
QWizard
会调用此虚拟函数以执行一些最后的验证。如果返回true
,则显示下一页(或向导完成);否则,当前页面保持不变。默认实现调用
validatePage()
在currentPage()
上。在可能的情况下,通常更好的做法是禁用“下一步”或“完成”按钮(通过指定
mandatory fields
或重新实现isComplete()
),而不是重新实现validateCurrentPage()。- visitedIds()¶
- Return type:
整数列表
返回访问过的页面的ID列表,按照页面被访问的顺序排列。
另请参阅
- wizardStyle()¶
- Return type:
另请参阅
属性
wizardStyleᅟ
的获取器。