引入
当我们安装软甲或者卸载软件时我们往往会看到一个可以不断点击上一步/下一步/取消/完成(在最后)这样的一系列窗口。这个有引导性的窗口就被叫做向导对话框。
我们可以发现向导对话框是这样的,他有几个页(小窗口),小窗口包括一个标题,一些内容,几个按钮。下面我就对每个元素一一编写。
页
再说这个之前我们先来认识两个库<wizard.h>和< QWizardPage.h>,前者是向导对话框的类,后者是向导对话框中页的类。
因此当我们想做一个向导对话框,就要先new对话框类,然后再new页,
int addPage(QWizardPage *page);
这个函数是在对话框中加入页的函数我们可以看到他需要的返回值是一个QWizardPage类的指针,所以我的想法是写一个函数去返回page,也就是构建页。
QWizardPage * MainWindow::createPage(){
QWizardPage *page = new QWizardPage;
return page;
}
标题
一个对话框中最重要的肯定就是标题和内容了。
标题的构建很简单:
page->setTitle("测试");
内容
内容包括两种,文字,图片;
我们无法直接将文本文字或者图片放到上边,因此我们需要别的类来帮忙。
QLabel *label = new QLabel(this);
label->setText("求求了,点个赞吧");
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(label);
page->setLayout(layout);
看上述代码,先用QLabel写文本内容,在写到布局类中,随后加入窗口。
QLabel *label = new QLabel;
label->setPixmap(QPixmap("img/2.png"));
QHBoxLayout *layout= new QHBoxLayout;
layout->addWidget(label);
page->setLayout(layout);
思路类似。
按钮
按钮包括上一个,下一个,完成,取消
page->setButtonText(QWizard::BackButton,"上一步");
page->setButtonText(QWizard::NextButton,"下一步");
page->setButtonText(QWizard::FinishButton,"完成");
page->setButtonText(QWizard::CancelButton,"取消");
即可。
还有一些类似于颜色,字体,字号就不多赘述了。大家可以自行尝试。