在應用程式安裝或是使用者註冊、設定時,可以提供使用者「精靈」(Wizard)進行一些選項設定與資訊填寫,在Step by Step的過程中,提示使用者完成所有必要的選項設定或資訊填寫,精靈可以使用QWizard類別來提供這個功能。
QWizard中每一步的畫面,都是一個QWizardPage物件,一個QWizardPage可以進行元件置放、設定版面管理、設定浮水印圖片、LOGO圖片、標題、副標題等。
下面這個程式是個簡單的示範,程式中將用QWizard建立有兩個頁面步驟的精靈:
#include <QApplication>
#include <QLabel>
#include <QWizard>
#include <QWizardPage>
#include <QHBoxLayout>
#include <QListWidget>
QWizardPage *createWelcomePage() {
    QWizardPage *page = new QWizardPage;
    page->setTitle("Gossip");
    page->setSubTitle("Wellcome to caterpillar's Gossip!");
    page->setPixmap(QWizard::WatermarkPixmap, QPixmap("caterpillar.jpg"));
    
    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(
      new QLabel("http://caterpillar.onlyfun.net<br>Gossip about C/C++, Java!"));
    page->setLayout(layout); 
    
    return page;  
}
QWizardPage *createListPage() {
    QWizardPage *page = new QWizardPage;
    QLabel *label = new QLabel;
    label->setFixedWidth (100);
    
    QListWidget *listWidget = new QListWidget;
    listWidget->insertItem(0, new QListWidgetItem(
                   QIcon("caterpillar_head.jpg"), "caterpillar"));
    listWidget->insertItem(1, new QListWidgetItem(
                   QIcon("momor_head.jpg"), "momor"));
    listWidget->insertItem(2, new QListWidgetItem(
                   QIcon("bush_head.jpg"), "bush"));
    listWidget->insertItem(3, new QListWidgetItem(
                   QIcon("bee_head.jpg"), "bee"));                                      
    listWidget->insertItem(4, new QListWidgetItem(
                   QIcon("cat_head.jpg"), "cat"));
                   
    QObject::connect(listWidget, SIGNAL(currentTextChanged (const QString &)),
                     label, SLOT(setText(const QString &)));
                   
    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(label);
    layout->addWidget(listWidget);
    
    page->setLayout(layout);
    
    return page;
}
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    
    QWizard *wizard = new QWizard;
    wizard->setWindowTitle("QWizard");
    
    wizard->addPage(createWelcomePage());
    wizard->addPage(createListPage());
        
    wizard->show();
    
    return app.exec();
}QWizardPage的setTitle()與setSubTitle()分別用來設定標題與副標題,而setPixmap ()用來設定顯示在畫面中的圖片,圖片的顯示方式有浮水印(WatermarkPixmap)、LOGO(LogoPixmap)、橫副 (BannerPixmap)、背景(BackgroundPixmap)等方式,在精靈頁面中的顯示的位置各不相同,可以參考Qt線上文件中 QWizard的說明。
程式中的精靈有兩個頁面,在過程中可以按「Next」進入下一個頁面,如果是最後一個頁面,則會顯示「Finish」按鈕,下圖是執行的的參考畫面:



