Qt编程16:Qt向导简单使用(QWizard及QWizardPage)

关于Qt向导的使用,在Qt4.8.1以及4Q5.2.1中存在一个简单的例子,实现方式与我的方式有所不同。

在原有的例子中,使用了三个方法,分别定义了三个向导页;然后在main函数中将三个向导页通过addPage的方法加入向导。

如此比较简单实现,但是我觉得不够灵活。最后是将三个向导页分别继承QWizardPage,因为会涉及到每个向导页的一些操作。在这里也是基础。

mywizard.h

#ifndef MYWIZARD_H
#define MYWIZARD_H

#include <QWizard>
#include "firstwizard.h"
#include "secondwizard.h"
#include "thirdwizard.h"

class MyWizard : public QWizard
{
    Q_OBJECT
public:
    explicit MyWizard(QWidget *parent = 0);

signals:

private:
    FirstWizard     *m_Fw;
    SecondWizard    *m_Sw;
    ThirdWizard     *m_Tw;

public:
    enum
    {
        Page_First,
        Page_Second,
        Page_Third
    };

};

#endif // MYWIZARD_H

mywizard.cpp

#include "mywizard.h"
#include <QTextCodec>
#include <QIcon>

MyWizard::MyWizard(QWidget *parent) :
    QWizard(parent),
    m_Fw(new FirstWizard),
    m_Sw(new SecondWizard),
    m_Tw(new ThirdWizard)
{
    //将向导页加入向导
    setPage(MyWizard::Page_First,m_Fw);
    setPage(MyWizard::Page_Second,m_Sw);
    setPage(MyWizard::Page_Third,m_Tw);
    //去掉帮助按钮
    this->setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint);
    //设置导航样式
    setWizardStyle( QWizard::ModernStyle );
    setWindowTitle( "Qt 向导页面");

    //去掉向导页面按钮
    setOption( QWizard::NoBackButtonOnStartPage );
    setOption( QWizard::NoBackButtonOnLastPage );
    setOption( QWizard::NoCancelButton );

    //---------------------------------------------------
    //在子页面中设置title一下几行才会生效
    QPixmap pix(QSize(500, 78));
    pix.fill(QColor(173,173,173));
    setPixmap(QWizard::BannerPixmap,pix);

    QIcon icon(":/new/images/infor.png");
    setPixmap( QWizard::LogoPixmap,icon.pixmap(64));

    //---------------------------------------------------
    //设置页面主标题的显示格式
    setTitleFormat(Qt::RichText);
    //设置子标题显示格式
    setSubTitleFormat(Qt::RichText);

    //设置两个按钮
    setButtonText(QWizard::NextButton, "下一步>");
    setButtonText(QWizard::BackButton, "<上一步");

}

firstwizard.h

#ifndef FIRSTWIZARD_H
#define FIRSTWIZARD_H

#include <QWizardPage>

namespace Ui {
class FirstWizard;
}

class FirstWizard : public QWizardPage
{
    Q_OBJECT

public:
    explicit FirstWizard(QWizardPage *parent = 0);
    ~FirstWizard();

private:
    Ui::FirstWizard *ui;
};

QString titleTemplate();
QString subTitleTemplate();

#endif // FIRSTWIZARD_H

firstwizard.cpp

#include "firstwizard.h"
#include "ui_firstwizard.h"
#include <QLabel>

FirstWizard::FirstWizard(QWizardPage *parent) :
    QWizardPage(parent),
    ui(new Ui::FirstWizard)
{
    ui->setupUi(this);
    setTitle(titleTemplate().arg("Qt软件向导使用"));
    setSubTitle(subTitleTemplate().arg("博客地址:http://blog.csdn.net/jiezhj"));
}

FirstWizard::~FirstWizard()
{
    delete ui;
}

QString titleTemplate()
{
  return QString::fromLatin1("<font color=\"white\" size=\"5\">")+ QString::fromLatin1("%1</font>");
}

QString subTitleTemplate()
{
    return QString::fromLatin1("<font color=\"white\" size=\"3\">")+ QString::fromLatin1("%1</font>");
}

其余两个页面与第一个页面类似

Qt编程16:Qt向导简单使用(QWizard及QWizardPage),布布扣,bubuko.com

时间: 2024-12-28 08:31:32

Qt编程16:Qt向导简单使用(QWizard及QWizardPage)的相关文章

QT-面向对象的QT编程,QT设计师

一.面向对象的编程 <案例>通过一个按钮更新时间显示,显示格式为xx:xx:xx //主函数文件 #include<QApplication> #include"TimeDialog.h" int main(int argc,char** argv){ QApplication app(argc,argv); TimeDialog time; time.show(); return app.exec(); } //类声明文件 #ifndef __TIMEDIAL

QT笔记(1)--QT编程环境搭建

一.QT简介 Qt  是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程.2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具.2012年,Qt被Digia收购.2014年4月,跨平台集成开发环境Qt Creator 3.1.

Qt on Android: Qt Quick 简单教程

上一篇<Qt on Android: Qt Quick 之 Hello World 图文详解>我们已经分别在电脑和 Android 手机上运行了第一个 Qt Quick 示例-- HelloQtQuickApp ,这篇呢,我们就来介绍 Qt Quick 编程的一些基本概念,为创建复杂的 Qt Quick 应用奠定基础. 版权所有 foruok ,如需转载请注明来自博客 http://blog.csdn.net/foruok . 首先看一下<Qt on Android: Qt Quick

Qt编程简介与基本知识

1. 什么是Qt? Qt是一个基于C++的跨平台应用程序和UI开发框架.它包含一个类库,和用于跨平台开发及国际化的工具. 由挪威Trolltech公司开发,后被Nokia收购,目前被Digia公司收购. 2. Qt的特性? 一次编程,到处编译 3. Qt的产生 4. Qt的发行版本 Qt商业版:提供给商业软件开发.它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务. Qt开源版:仅仅为了开发自由和开放源码软件,提供了和商业版本同样的功能.GNU通用公共许可证下,它是免费的.

Qt编程之实现在QFileDialog上添加自定义的widget

上网搜索找到的方法如下: http://www.qtforum.org/article/20841/how-to-add-a-qwidget-in-qfiledialog.html#post78422 http://www.qtcentre.org/threads/42858-Creating-a-Custom-FileOpen-Dialog http://stackoverflow.com/questions/16987916/add-widgets-to-qfiledialog 其实前两个链

【Qt编程】系统托盘的显示

本文主要讨论Qt中的系统托盘的设置.系统托盘想必大家都不陌生,最常用的就是QQ.系统托盘以简单.小巧的形式能让人们较快的打开软件.废话不多说,下面开始具体介绍. 首先,新建一个Qt Gui项目,类型选择QMainWindow,类名也选择默认的mainwindow.这时,工程项目中就有3个文件(界面文件不用管):mainwindow.h mainwindow.cpp main.cpp.然后,分别修改3个文件如下: 1.mainwindow.h #ifndef MAINWINDOW_H #defin

在windows下的QT编程中的_TCHAR与QString之间的转换

由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef UNICODE #define QStringToTCHAR(x)     (wchar_t*) x.utf16() #define PQStringToTCHAR(x)    (wchar_t*) x->utf16() #define TCHARToQString(x)     QString:

Qt编程18:Qt调色板QPalette的使用

QPalette类有两个枚举类型, 枚举 1.ColorGroup CorGroup指的是3中不同的状态(什么时候设置颜色): 1>Active:获得焦点的状态. 2>Inactive:未获得焦点的状态. 3>Disable:不可用状态. 通常情况下,Active状态与Inactive状态下颜色显示是一致的,当然也可根据需要设置成不一样的颜色 2.ColorRole(设置什么颜色). ColorRole指的是颜色主题,即对窗体中不同部位颜色的分类,如QPalette::Window是指背

Qt编程获取鼠标移动事件

想做下面一个效果:想当鼠标移动到按钮上的时候,按钮就变大,图标换个大的,鼠标不在按钮上的时候,按钮就变小,图标也换成小的,感觉比较Cool 实现原理:为每个按钮设置监听属性 void MainHomeForm::init() { //为按钮注册事件 ui->SystemSetButton->installEventFilter(this); ui->ZoneSetButton->installEventFilter(this); } //系统监听器监听按钮对象 bool MainH