Qt向导简单使用(QWizard及QWizardPage)

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

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

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

 

mywizard.h

[cpp]  view plain  copy
  1. #ifndef MYWIZARD_H  
  2. #define MYWIZARD_H  
  3.   
  4. #include <QWizard>  
  5. #include "firstwizard.h"  
  6. #include "secondwizard.h"  
  7. #include "thirdwizard.h"  
  8.   
  9.   
  10. class MyWizard : public QWizard  
  11. {  
  12.     Q_OBJECT  
  13. public:  
  14.     explicit MyWizard(QWidget *parent = 0);  
  15.   
  16. signals:  
  17.   
  18. private:  
  19.     FirstWizard     *m_Fw;  
  20.     SecondWizard    *m_Sw;  
  21.     ThirdWizard     *m_Tw;  
  22.   
  23. public:  
  24.     enum  
  25.     {  
  26.         Page_First,  
  27.         Page_Second,  
  28.         Page_Third  
  29.     };  
  30.   
  31. };  
  32.   
  33. #endif // MYWIZARD_H  


mywizard.cpp

[cpp]  view plain  copy
  1. #include "mywizard.h"  
  2. #include <QTextCodec>  
  3. #include <QIcon>  
  4.   
  5. MyWizard::MyWizard(QWidget *parent) :  
  6.     QWizard(parent),  
  7.     m_Fw(new FirstWizard),  
  8.     m_Sw(new SecondWizard),  
  9.     m_Tw(new ThirdWizard)  
  10. {  
  11.     //将向导页加入向导  
  12.     setPage(MyWizard::Page_First,m_Fw);  
  13.     setPage(MyWizard::Page_Second,m_Sw);  
  14.     setPage(MyWizard::Page_Third,m_Tw);  
  15.     //去掉帮助按钮  
  16.     this->setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint);  
  17.     //设置导航样式  
  18.     setWizardStyle( QWizard::ModernStyle );  
  19.     setWindowTitle( "Qt 向导页面");  
  20.   
  21.     //去掉向导页面按钮  
  22.     setOption( QWizard::NoBackButtonOnStartPage );  
  23.     setOption( QWizard::NoBackButtonOnLastPage );  
  24.     setOption( QWizard::NoCancelButton );  
  25.   
  26.     //---------------------------------------------------  
  27.     //在子页面中设置title一下几行才会生效  
  28.     QPixmap pix(QSize(500, 78));  
  29.     pix.fill(QColor(173,173,173));  
  30.     setPixmap(QWizard::BannerPixmap,pix);  
  31.   
  32.     QIcon icon(":/new/images/infor.png");  
  33.     setPixmap( QWizard::LogoPixmap,icon.pixmap(64));  
  34.   
  35.     //---------------------------------------------------  
  36.     //设置页面主标题的显示格式  
  37.     setTitleFormat(Qt::RichText);  
  38.     //设置子标题显示格式  
  39.     setSubTitleFormat(Qt::RichText);  
  40.   
  41.     //设置两个按钮  
  42.     setButtonText(QWizard::NextButton, "下一步>");  
  43.     setButtonText(QWizard::BackButton, "<上一步");  
  44.   
  45. }  

firstwizard.h

[cpp]  view plain  copy
  1. #ifndef FIRSTWIZARD_H  
  2. #define FIRSTWIZARD_H  
  3.   
  4. #include <QWizardPage>  
  5.   
  6. namespace Ui {  
  7. class FirstWizard;  
  8. }  
  9.   
  10. class FirstWizard : public QWizardPage  
  11. {  
  12.     Q_OBJECT  
  13.   
  14. public:  
  15.     explicit FirstWizard(QWizardPage *parent = 0);  
  16.     ~FirstWizard();  
  17.   
  18. private:  
  19.     Ui::FirstWizard *ui;  
  20. };  
  21.   
  22. QString titleTemplate();  
  23. QString subTitleTemplate();  
  24.   
  25. #endif // FIRSTWIZARD_H  

firstwizard.cpp

[cpp]  view plain  copy
  1. #include "firstwizard.h"  
  2. #include "ui_firstwizard.h"  
  3. #include <QLabel>  
  4.   
  5.   
  6. FirstWizard::FirstWizard(QWizardPage *parent) :  
  7.     QWizardPage(parent),  
  8.     ui(new Ui::FirstWizard)  
  9. {  
  10.     ui->setupUi(this);  
  11.     setTitle(titleTemplate().arg("Qt软件向导使用"));  
  12.     setSubTitle(subTitleTemplate().arg("博客地址:http://blog.csdn.net/jiezhj"));  
  13. }  
  14.   
  15. FirstWizard::~FirstWizard()  
  16. {  
  17.     delete ui;  
  18. }  
  19.   
  20.   
  21. QString titleTemplate()  
  22. {  
  23.   return QString::fromLatin1("<font color=\"white\" size=\"5\">")+ QString::fromLatin1("%1</font>");  
  24. }  
  25.   
  26. QString subTitleTemplate()  
  27. {  
  28.     return QString::fromLatin1("<font color=\"white\" size=\"3\">")+ QString::fromLatin1("%1</font>");  
  29. }  

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

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值