QWizardPage Class

Header:#include < QWizardPage >
qmake:QT += widgets
Since:Qt 4.3
Inherits:QWidget

This class was introduced in Qt 4.3.

Properties

subTitle : QString
title : QString 

Public Functions

QWizardPage(QWidget *parent = nullptr)
virtual ~QWizardPage()
QString buttonText(QWizard::WizardButton which) const
virtual void cleanupPage()
virtual void initializePage()
bool isCommitPage() const
virtual bool isComplete() const
bool isFinalPage() const
virtual int nextId() const
QPixmap pixmap(QWizard::WizardPixmap which) const
void setButtonText(QWizard::WizardButton which, const QString &text)
void setCommitPage(bool commitPage)
void setFinalPage(bool finalPage)
void setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap)
void setSubTitle(const QString &subTitle)
void setTitle(const QString &title)
QString subTitle() const
QString title() const
virtual bool validatePage()

Signals

void completeChanged()

Protected Functions

QVariant field(const QString &name) const
void registerField(const QString &name, QWidget *widget, const char *property = nullptr, const char *changedSignal = nullptr)
void setField(const QString &name, const QVariant &value)
QWizard *wizard() const

Detailed Description

QWizard表示向导。每个页面都是一个QWizardPage。当您创建自己的向导时,您可以直接使用QWizardPage,或者您可以将其子类化以获得更多的控制。
页面具有以下属性,它们由QWizard呈现:标题、副标题和一组像素图。有关详细信息,请参阅向导页的元素。一旦页面被添加到向导中(使用QWizard::addPage()或QWizard::setPage()), wizard()返回一个指向相关QWizard对象的指针。
Page提供了5个可以重新实现的虚函数来提供自定义行为:
当用户单击向导的Next按钮时,调用initializePage()来初始化页面的内容。如果您希望从用户在以前页面上输入的内容中派生页面的默认值,则需要重新实现这个函数。
当用户单击向导的Back按钮时,调用cleanupage()来重置页面的内容。
当用户单击Next或Finish时,validatePage()验证页面。它通常用于在用户输入不完整或无效信息时显示错误消息。
nextId()返回下一页的ID。它在创建非线性向导时非常有用,因为非线性向导允许根据用户提供的信息选择不同的遍历路径。
调用isComplete()来确定Next和/或Finish按钮是否应该启用或禁用。如果您重新实现isComplete(),还要确保每当完整状态发生变化时都发出completeChanged()。
通常,向导的Next按钮和Finish按钮是互斥的。如果isFinalPage()返回true,则Finish可用;否则,Next可用。默认情况下,只有当nextId()返回-1时,isFinalPage()才为true。如果您希望在一个页面上同时显示Next和Final(让用户执行“提前完成”),请在该页面上调用setFinalPage(true)。对于支持提前完成的向导,您可能还需要在向导上设置HaveNextButtonOnLastPage和HaveFinishButtonOnEarlyPages选项。
在许多向导中,页面的内容可能会影响后面页面字段的默认值。为了便于在页面之间进行通信,QWizard支持一个“字段”机制,允许您在页面上注册一个字段(例如,QLineEdit),并从任何页面访问其值。字段对于整个向导来说是全局的,并且使任何单个页面都可以轻松访问由另一个页面存储的信息,而不必将所有逻辑放在QWizard中,也不必让页面显式地了解彼此。字段使用registerField()进行注册,并且可以在任何时候使用field()和setField()进行访问。

See also QWizard, Class Wizard Example, and License Wizard Example.

Property Documentation

subTitle : QString
	此属性保存页面的副标题
	QWizard在标题和实际页面之间显示副标题。字幕是可选的。在ClassicStyle和ModernStyle中,使用字幕来显示标题是必要的。在MacStyle中,副标题显示为实际页面上方的文本标签。
	根据QWizard::subTitleFormat属性的值,字幕可以是纯文本或HTML。
	默认情况下,此属性包含一个空字符串。
访问函数:
	QString subTitle() const
	void setSubTitle(const QString &subTitle)

See also title, QWizard::IgnoreSubTitles, and Elements of a Wizard Page.
title : QString
	此属性保存页面的标题
	标题由QWizard显示在实际页面的上方。所有页面都应该有一个标题。
	标题可以是纯文本或HTML,这取决于QWizard::titleFormat属性的值。
	默认情况下,此属性包含一个空字符串。
访问函数:
	QString title() const
	void setTitle(const QString &title)

See also subTitle and Elements of a Wizard Page.

Member Function Documentation

QWizardPage::QWizardPage(QWidget *parent = nullptr)
	使用给定的父级构造向导页。
	当使用QWizard::addPage()QWizard::setPage()将页面插入向导中时,父级将自动设置为向导。
See also wizard().
[signal] void QWizardPage::completeChanged()
	每当页面的完整状态(isComplete()的值发生变化时,就会发出这个信号。
	如果您重新实现isComplete(),请确保在isComplete()的值发生变化时发出completeChanged(),以确保QWizard更新其按钮的启用或禁用状态。
See also isComplete().
[virtual] QWizardPage::~QWizardPage()
	Destructor.
QString QWizardPage::buttonText(QWizard::WizardButton which) const
	返回本页上按钮的文本。
	如果使用setButtonText()设置了文本,则返回该文本。否则,如果使用QWizard::setButtonText()设置了文本,则返回该文本。
	默认情况下,按钮上的文本取决于QWizard::wizardStyle。例如,在macOS上,下一步按钮称为继续。
See also setButtonText(), QWizard::buttonText(), and QWizard::setButtonText().
[virtual] void QWizardPage::cleanupPage()
	当用户通过单击Back离开页面时(除非设置了QWizard::IndependentPages选项),QWizard:: cleanupage()调用这个虚拟函数。
	默认实现将页面的字段重置为它们的原始值(调用initializePage()之前的值)。
See also QWizard::cleanupPage(), initializePage(), and QWizard::IndependentPages.
[protected] QVariant QWizardPage::field(const QString &name) const
	返回名为name字段的值。
	此函数可用于访问向导任何页面上的字段。它相当于调用wizard()->field(name)。
	例子:

  void OutputFilesPage::initializePage()
  {
      QString className = field("className").toString();
      headerLineEdit->setText(className.toLower() + ".h");
      implementationLineEdit->setText(className.toLower() + ".cpp");
      outputDirLineEdit->setText(QDir::toNativeSeparators(QDir::tempPath()));
  }

See also QWizard::field(), setField(), and registerField().
[virtual] void QWizardPage::initializePage()
	这个虚函数由QWizard::initializePage()调用,以便在页面显示之前对其进行准备,或者由于QWizard::restart()被调用,或者由于用户单击Next而显示页面。(但是,如果设置了QWizard::IndependentPages选项,则仅在第一次显示页面时调用此函数。)
	通过重新实现这个函数,您可以确保页面的字段是基于先前页面中的字段正确初始化的。例如:

  void OutputFilesPage::initializePage()
  {
      QString className = field("className").toString();
      headerLineEdit->setText(className.toLower() + ".h");
      implementationLineEdit->setText(className.toLower() + ".cpp");
      outputDirLineEdit->setText(QDir::toNativeSeparators(QDir::tempPath()));
  }

The default implementation does nothing.
See also QWizard::initializePage(), cleanupPage(), and QWizard::IndependentPages.
bool QWizardPage::isCommitPage() const
	如果该页是提交页,则返回true;否则返回false。
See also setCommitPage().
[virtual] bool QWizardPage::isComplete() const
	QWizard调用这个虚函数来确定Next或Finish按钮是否应该启用或禁用。
	如果所有必填字段都被填满,默认实现返回true;否则,返回false。
	如果重新实现这个函数,请确保在isComplete()的值发生变化时,从实现的其余部分发出completeChanged()。这确保QWizard更新其按钮的启用或禁用状态。这里提供了一个重新实现的示例。
See also completeChanged() and isFinalPage().
bool QWizardPage::isFinalPage() const
	QWizard调用这个函数来确定是否应该为这个页面显示Finish按钮。
	默认情况下,如果没有下一页,它返回true(即,nextId()返回-1);否则,返回false。
	通过显式调用setFinalPage(true),你可以让用户执行“提前完成”。
See also isComplete() and QWizard::HaveFinishButtonOnEarlyPages.
[virtual] int QWizardPage::nextId() const
	这个虚函数由QWizard::nextId()调用,以找出当用户单击Next按钮时要显示哪个页面。
	返回值是下一页的ID,如果没有下一页则返回-1。
	默认情况下,此函数返回大于当前页面ID的最小ID,如果没有这样的ID则返回-1。
	通过重新实现此函数,您可以指定动态页面顺序。例如:

  int IntroPage::nextId() const
  {
      if (evaluateRadioButton->isChecked()) {
          return LicenseWizard::Page_Evaluate;
      } else {
          return LicenseWizard::Page_Register;
      }
  }

See also QWizard::nextId().
QPixmap QWizardPage::pixmap(QWizard::WizardPixmap which) const
	返回角色的像素图集。
	还可以使用QWizard::setPixmap()为整个向导设置像素图,在这种情况下,它们适用于没有指定像素图的所有页面。
See also setPixmap(), QWizard::pixmap(), and Elements of a Wizard Page.
[protected] void QWizardPage::registerField(const QString &name, QWidget *widget, const char *property = nullptr, const char *changedSignal = nullptr)
	创建一个名为name的字段,该字段与给定小部件的给定属性关联。从那时起,可以使用field()setField()访问该属性。
	字段对于整个向导来说是全局的,并且使任何单个页面都可以轻松访问由另一个页面存储的信息,而不必将所有逻辑放在QWizard中,也不必让页面显式地了解彼此。
	“name”以“*”结尾时为必填字段。当页面有强制字段时,Next和/或Finish按钮只有在所有强制字段都填满时才启用。这需要指定一个changedSignal,以告诉QWizard重新检查由必填字段存储的值。
	QWizard知道最常见的Qt小部件。对于这些(或它们的子类),您不需要指定属性或changedSignal。下表列出了这些小部件:

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(), and QWizard::setDefaultProperty().
void QWizardPage::setButtonText(QWizard::WizardButton which, const QString &text)
	将按钮上的文本设置为本页上的文本。
	默认情况下,按钮上的文本依赖于QWizard::wizardStyle,但可以使用QWizard::setButtonText()为整个向导重新定义。
See also buttonText(), QWizard::setButtonText(), and QWizard::buttonText().
void QWizardPage::setCommitPage(bool commitPage)
	如果commitPage为true,则将该页设置为提交页;否则,将其设置为普通页面。
	提交页是表示不能通过单击“返回”或“取消”来撤消的操作的页面。
	提交按钮取代提交页面上的Next按钮。单击此按钮只调用QWizard::next(),就像单击next一样。
	直接从提交页面进入的页面会禁用后退按钮。
See also isCommitPage().
[protected] void QWizardPage::setField(const QString &name, const QVariant &value)
	将名为name的字段的值设置为value。
	此功能可用于设置向导任何页面上的字段。它相当于调用wizard()->setField(name, value)。
See also QWizard::setField(), field(), and registerField().
void QWizardPage::setFinalPage(bool finalPage)
	如果finalPage为true,则显式地将此页面设置为final。
	调用setFinalPage(true)后,isFinalPage()返回true, Finish按钮可见(如果isComplete()返回true则启用)。
	调用setFinalPage(false)后,如果nextId()返回-1isFinalPage()返回true;否则,返回false。
See also isFinalPage(), isComplete(), and QWizard::HaveFinishButtonOnEarlyPages.
void QWizardPage::setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap)
	为要像素化的角色设置像素图。
	像素图是QWizard在显示页面时使用的。实际使用的像素图取决于向导样式。
	还可以使用QWizard::setPixmap()为整个向导设置像素图,在这种情况下,它们适用于没有指定像素图的所有页面。
See also pixmap(), QWizard::setPixmap(), and Elements of a Wizard Page.
[virtual] bool QWizardPage::validatePage()
	当用户单击Next或Finish执行最后一分钟的验证时,QWizard::validateCurrentPage()调用这个虚拟函数。如果返回true,则显示下一页(或向导结束);否则,当前页面保持不变。
	默认实现返回true。
	在可能的情况下,禁用Next或Finish按钮(通过指定强制字段或重新实现isComplete())通常比重新实现validatePage()更好。
	
See also QWizard::validateCurrentPage() and isComplete().
[protected] QWizard *QWizardPage::wizard() const
	返回与此页关联的向导,如果此页尚未插入到QWizard中,则返回nullptr。
See also QWizard::addPage() and QWizard::setPage(). 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值