QWizardPage Class Reference

[QtGui module]

该QWizardPage类是向导页面的基类。More…

继承QWidget

Methods

  • __init__ (self, QWidget parent = None)
  • QString buttonText (self, QWizard.WizardButton which)
  • cleanupPage (self)
  • QVariant field (self, QString name)
  • initializePage (self)
  • bool isCommitPage (self)
  • bool isComplete (self)
  • bool isFinalPage (self)
  • int nextId (self)
  • QPixmap pixmap (self, QWizard.WizardPixmap which)
  • registerField (self, QString name, QWidget widget, str property = None, signal changedSignal = 0)
  • registerField (self, QString name, QWidget widget, str property = None, SIGNAL() changedSignal = 0)
  • setButtonText (self, QWizard.WizardButton which, QString text)
  • setCommitPage (self, bool commitPage)
  • setField (self, QString name, QVariant value)
  • setFinalPage (self, bool finalPage)
  • setPixmap (self, QWizard.WizardPixmap which, QPixmap pixmap)
  • setSubTitle (self, QString subTitle)
  • setTitle (self, QString title)
  • QString subTitle (self)
  • QString title (self)
  • bool validatePage (self)
  • QWizard wizard (self)

Qt Signals

  • void completeChanged ()

Detailed Description

该QWizardPage类是向导页面的基类。

QWizard代表一个向导。每个页面都是一个QWizardPage 。当您创建自己的向导,您可以直接使用QWizardPage ,或者你可以继承它进行更多的控制。

一个页面有如下属性,这是由提供QWizard:一title,一subTitleset of pixmaps。看Elements of a Wizard Page了解详情。当一个页面被(使用添加向导QWizard.addPage()或QWizard.setPage()),wizard( )返回一个指向相关QWizard对象。

页面提供了可重新实现以提供自定义行为五个虚拟函数:

  • initializePage() is called to initialize the page’s contents when the user clicks the wizard’s Next button. If you want to derive the page’s default from what the user entered on previous pages, this is the function to reimplement.
  • cleanupPage() is called to reset the page’s contents when the user clicks the wizard’s Back button.
  • validatePage() validates the page when the user clicks Next or Finish. It is often used to show an error message if the user has entered incomplete or invalid information.
  • nextId() returns the ID of the next page. It is useful when creating non-linear wizards, which allow different traversal paths based on the information provided by the user.
  • isComplete() is called to determine whether the Next and/or Finish button should be enabled or disabled. If you reimplement isComplete(), also make sure that completeChanged() is emitted whenever the complete state changes.

一般情况下,Next按钮和Finish向导按钮是互斥的。如果isFinalPage( )返回True ,Finish可用,否则Next是可用的。默认情况下,isFinalPage( )为真,只有当nextId( )返回-1 。如果你想显示NextFinal同时一个页面(让用户执行一个“早完成” ) ,调用setFinalPage (真)在该网页。对于支持早期完成向导,您可能还需要设置HaveNextButtonOnLastPageHaveFinishButtonOnEarlyPages在该向导的选项。

在许多向导页面的内容可能会影响后面的页的字段的缺省值。为了便于页面之间进行通信,QWizard支持“field” mechanism这允许您注册一个字段(例如,一QLineEdit)上的一个页面,访问任何网页它的价值。字段是全球整个向导,很容易让任何一个网页访问另一个页面存储的信息,而不必把所有的逻辑QWizard或具有明确的页面了解对方。字段使用登记registerField( ),并且可以在任何时间使用访问field()和setField( ) 。


Method Documentation

  1. QWizardPage.__init__ (self, QWidget parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个向导页中给定的parent

当页面使用插入向导QWizard.addPage()或QWizard.setPage( ) ,父被自动设置为向导。

See also wizard( ) 。

  1. QString QWizardPage.buttonText (self, QWizard.WizardButton which)

按钮返回文本which此页面上。

如果使用的是文本有奔集setButtonText( ) ,则返回该文本。否则,如果文本已经使用设置QWizard.setButtonText( ) ,则返回该文本。

默认情况下,按钮上的文本取决于QWizard.wizardStyle。例如,在Mac OS X中,Next按钮被称为Continue

See also setButtonText( )QWizard.buttonText()和QWizard.setButtonText( ) 。

  1. QWizardPage.cleanupPage (self)

这个虚函数被调用QWizard.cleanupPage()用户通过点击离开页面时Back(除非QWizard.IndependentPages选项设置) 。

默认实现重置页面的栏位为原始值(他们之前所拥有的价值观initializePage( )被调用) 。

See also QWizard.cleanupPage( )initializePage()和QWizard.IndependentPages

  1. QVariant QWizardPage.field (self, QString name)

返回字段的所谓的值name

此功能可用于访问向导的任何页面上的字段。这等同于调用wizard() - \u003efieldname) 。

例如:

  1. void OutputFilesPage.initializePage()
  2. {
  3. [QString]($docs-qstring.html) className = field("className").toString();
  4. headerLineEdit->setText(className.toLower() + ".h");
  5. implementationLineEdit->setText(className.toLower() + ".cpp");
  6. outputDirLineEdit->setText([QDir](qdir.html).convertSeparators([QDir](qdir.html).tempPath()));
  7. }

See also QWizard.field( )setField()和registerField( ) 。

  1. QWizardPage.initializePage (self)

这个虚函数被调用QWizard.initializePage( )编写的网页也显示无论是作为一个结果之前QWizard.restart()被调用时,或者当用户点击的结果Next。 (然而,如果QWizard.IndependentPages选项设置,此功能只在第一次调用的页面显示。 )

通过重新实现这个功能,可以确保基于前几页信息页面的栏已正确初始化。例如:

  1. void OutputFilesPage.initializePage()
  2. {
  3. [QString]($docs-qstring.html) className = field("className").toString();
  4. headerLineEdit->setText(className.toLower() + ".h");
  5. implementationLineEdit->setText(className.toLower() + ".cpp");
  6. outputDirLineEdit->setText([QDir](qdir.html).convertSeparators([QDir](qdir.html).tempPath()));
  7. }

默认实现不执行任何操作。

See also QWizard.initializePage( )cleanupPage()和QWizard.IndependentPages

  1. bool QWizardPage.isCommitPage (self)

返回True如果该页面是一个提交页面,否则返回False 。

See also setCommitPage( ) 。

  1. bool QWizardPage.isComplete (self)

这个虚函数被调用QWizard以确定是否Next or Finish按钮应该被启用或禁用。

默认实现返回True,如果所有mandatory fields充满,否则返回False 。

如果重新实现此功能,请确保发射completeChanged( ) ,从您的实现,只要在isComplete的值( )变化的其馀部分。这确保了QWizard更新其按钮的启用或禁用状态。重新实现的一个示例是可 here

See also completeChanged()和isFinalPage( ) 。

  1. bool QWizardPage.isFinalPage (self)

调用此函数由QWizard以确定是否Finish按钮应显示该页面与否。

默认情况下,如果没有下一个页面(即返回True ,nextId( )返回-1 ) ,否则返回False 。

通过显式调用setFinalPage (真) ,可以让用户执行“最早完成” 。

See also isComplete()和QWizard.HaveFinishButtonOnEarlyPages

  1. int QWizardPage.nextId (self)

这个虚函数被调用QWizard.nextId( )来找出当用户点击显示哪些页面Next按钮。

返回值是下一个页面的ID ,或-1,如果没有页面如下。

默认情况下,这个函数返回的最低编号大于当前页面的ID ,或-1,如果没有这样的标识。

通过重新实现此功能,您可以指定一个动态的页面顺序。例如:

  1. int IntroPage.nextId() const
  2. {
  3. if (evaluateRadioButton->isChecked()) {
  4. return LicenseWizard.Page_Evaluate;
  5. } else {
  6. return LicenseWizard.Page_Register;
  7. }
  8. }

See also QWizard.nextId( ) 。

  1. QPixmap QWizardPage.pixmap (self, QWizard.WizardPixmap which)

[

返回角色像素图组which

]($docs-qpixmap.html)

像素图,也可以使用整个向导设置QWizard.setPixmap( ) ,在这种情况下,他们申请不指定像素图的所有页面。

See also setPixmap( )QWizard.pixmap()和Elements of a Wizard Page

  1. QWizardPage.registerField (self, QString name, QWidget widget, str property = None, signal changedSignal = 0)

创建一个名为场name用给定的相关联property的给定widget。从那时起,该属性使用变得方便field()和setField( ) 。

字段是全球整个向导,很容易让任何一个网页访问另一个页面存储的信息,而不必把所有的逻辑QWizard或具有明确的页面了解对方。

If name带星号结尾(*) ,该字段是必填字段。当一个页面有必填字段中,Next和/或Finish按钮被激活,只有当所有必填字段被填充。这需要changedSignal被指定的,告诉QWizard重新检查的必填字段存储的值。

QWizard知道最常见的Qt部件。对于这些(或其子类) ,你不需要指定propertychangedSignal。下表列出了这些小部件:

Widget Property Change Notification Signal
QAbstractButton bool checked toggled()
QAbstractSlider int value valueChanged()
QComboBox int currentIndex currentIndexChanged()
QDateTimeEdit QDateTime dateTime dateTimeChanged()
QLineEdit QString text textChanged()
QListWidget int currentRow currentRowChanged()
QSpinBox int value valueChanged()

您可以使用QWizard.setDefaultProperty( )将条目添加到该表或复盖现有条目。

考虑现场“装” ,QWizard简单地检查他们的当前值不等于其原始值(它们之前所拥有的价值initializePage( )被调用) 。为QLineEdit,它还会检查hasAcceptableInput()返回True ,兑现任何验证或面具。

QWizard提供方便的必填字段机制。它可以通过重新实现被绕过QWizardPage.isComplete( ) 。

See also field( )setField()和QWizard.setDefaultProperty( ) 。

  1. QWizardPage.registerField (self, QString name, QWidget widget, str property = None, SIGNAL() changedSignal = 0)
  1. QWizardPage.setButtonText (self, QWizard.WizardButton which, QString text)

按钮设置文本whichtext此页面上。

默认情况下,按钮上的文本取决于QWizard.wizardStyle,而是可以被重新定义为向导如使用整体QWizard.setButtonText( ) 。

See also buttonText( )QWizard.setButtonText()和QWizard.buttonText( ) 。

  1. QWizardPage.setCommitPage (self, bool commitPage)

设置这个页面是一个提交页面,如果commitPage为True,否则,设置它是一个正常的页面。

一个提交页面是代表它无法通过单击撤消的操作页面Back or Cancel

A Commit按钮取代了Next提交页面上按钮。点击这个按钮简单地调用QWizard.next( )就像点击Next一样。

直接提交页面中输入一个页面都有它Back按钮禁用。

See also isCommitPage( ) 。

  1. QWizardPage.setField (self, QString name, QVariant value)

设置字段中称为值namevalue

此功能可用于在向导的任何页面上设置的字段。这等同于调用wizard() - \u003esetField(name, value)

See also QWizard.setField( )field()和registerField( ) 。

  1. QWizardPage.setFinalPage (self, bool finalPage)

显式设置此页面是最终的,如果finalPage是真实的。

调用setFinalPage (真)后,isFinalPage()返回True,并且Finish按钮是可见的(如果启用isComplete( )返回True ) 。

调用setFinalPage (假)后,isFinalPage( )返回True ,如果nextId( )返回-1 ,否则返回False 。

See also isFinalPage( )isComplete()和QWizard.HaveFinishButtonOnEarlyPages

  1. QWizardPage.setPixmap (self, QWizard.WizardPixmap which, QPixmap pixmap)

设置像素图的作用whichpixmap

该像素图所使用的QWizard显示一个页面时。其中像素图实际使用依赖于wizard style

像素图,也可以使用整个向导设置QWizard.setPixmap( ) ,在这种情况下,他们申请不指定像素图的所有页面。

See also pixmap( )QWizard.setPixmap()和Elements of a Wizard Page

  1. QWizardPage.setSubTitle (self, QString subTitle)
  1. QWizardPage.setTitle (self, QString title)
  1. QString QWizardPage.subTitle (self)
  1. QString QWizardPage.title (self)
  1. bool QWizardPage.validatePage (self)

这个虚函数被调用QWizard.validateCurrentPage( )当用户点击Next or Finish执行一些最后一分钟的验证。如果返回True,则下一个页面显示(或向导完成),否则,在当前页面熬夜。

默认实现返回True 。

如果可能的话,它通常是更好的风格禁用Next or Finish按钮(通过指定mandatory fields或者重新实现isComplete( ) ),而不是重新实现validatePage ( ) 。

See also QWizard.validateCurrentPage()和isComplete( ) 。

  1. QWizard QWizardPage.wizard (self)

返回与此页面,或0相关的向导,如果这个页面没有被插入QWizard还没有。

See also QWizard.addPage()和QWizard.setPage( ) 。


Qt Signal Documentation

  1. void completeChanged ()

这是该信号的默认超载。

这个信号被发射时的页面(即,值的完整状态isComplete())的变化。

如果你重新实现isComplete( ) ,一定要发出completeChanged ( )时的值isComplete( )的变化,以确保QWizard更新其按钮的启用或禁用状态。

See also isComplete( ) 。