Qt Class Wizard Example 看看看~

本例展示怎么用QWizard实现线性向导。例子通过向导为我们在指定目录地点生成了c++代码。


大多数的向导都是线性结构的,一页跟着一页,直到最后一页。一些向导也可能更复杂,以致根据用户输入的信息提供不同的漫游路径。之后有一个License Wizard的例子展示了这样的向导。


类向导例子由下面的类组成:

1. Class Wizard,继承自QWizard

2. IntroPage, ClassInfoPage, CodeStylePage, OutputFilesPageConclusionPage都是QWizardPage的子类。QWizard实现向导页。


本例的ClassWizard类只重新实现了accept()槽,当用户点击Finish的时候就会调用这个槽。

QWizard是继承自QDialog的,而每一个向导页面是由QWizardPageQWidget的一个子类)来执行的,采用addPage()来增加创建的QWizardPage

QWizardPage可以添加标题,标题会显示在页的最左上方。setTitle()。还可以设置子标题,子标题跟着标题的下面的位置,起到说明的作用。setSubTitle().

可以用setPixmap来为向导提供图片,void QWizard::setPixmap ( WizardPixmap which, const QPixmap & pixmap )


向导有四种风格:ClassicStyleModernStyleMacStyleAeroStyle(setWizardStyle设置)

枚举类WizardPixmap有四个值:

QWizard::WatermarkPixmap:ClassicStyleModernStyle页面的左侧设置图片

QWizard::LogoPixmap:ClassicStyleModernStyle 右侧设置图片

QWizard::BannerPixmap:ModernStyle设置的背景图片

QWizard::BackgroundPixmap:MacStyle设置背景图片


在很多向导中,页的内容会被一些默认的值或者用户设置的值影响,QWizard提供一个叫“field(叫它域吧)的机制。它允许在向导页上注册一个域(例如一个QLineEdit),并可以在任何其他页中存取它的值。可以通过QWizardPage::registerField()调用域。这个域也可以是托管的(mandatory)域(带星号“*”),托管的域必须填充才能进入到下一个页。例如:registerField("className*", classNameLineEdit);注册好了以后就可以用field(“**”)使用了。例如:

你可能感兴趣的:(QT,c++,C++,qt,Qt,QT)