Qt多窗口切换程序

该文章转自:http://www.2cto.com/kf/201203/124441.html

 Qt多窗口切换程序

1.ui文件中布局

 

2.主要程序

 main.cpp

[cpp]  view plain  copy
  1. #include <QtGui/QApplication>    
  2. #include "mainwindow.h"    
  3.    
  4. int main(int argc, char *argv[])   
  5. {   
  6.     QApplication a(argc, argv);   
  7.     MainWindow w;   
  8.     w.show();   
  9.        
  10.     return a.exec();   
  11. }   


主界面程序:

mainwindow.h

[cpp]  view plain  copy
  1. ifndef MAINWINDOW_H   
  2. #define MAINWINDOW_H    
  3.    
  4. #include <QMainWindow>    
  5. #include "dialog1.h"    
  6. #include "dialog2.h"    
  7.    
  8. namespace Ui {   
  9. class MainWindow;   
  10. }   
  11.    
  12. class MainWindow : public QMainWindow   
  13. {   
  14.     Q_OBJECT   
  15.        
  16. public:   
  17.     explicit MainWindow(QWidget *parent = 0);   
  18.    
  19.     ~MainWindow();   
  20.        
  21. private slots:   
  22.     void on_pushButton_clicked();   
  23.    
  24.     void on_pushButton_2_clicked();   
  25.    
  26.    
  27.     void on_pushButton_3_clicked();   
  28.    
  29. private:   
  30.     Ui::MainWindow *ui;   
  31.     Dialog1 dialog1;   
  32.     Dialog2 dialog2;   
  33. };   
  34.    
  35. #endif // MAINWINDOW_H   


 

mainwindow.cpp

[cpp]  view plain  copy
  1. ">#include "mainwindow.h"   
  2. #include "ui_mainwindow.h"    
  3.    
  4.    
  5. MainWindow::MainWindow(QWidget *parent) :   
  6.     QMainWindow(parent),   
  7.     ui(new Ui::MainWindow)   
  8. {   
  9.     ui->setupUi(this);   
  10.    
  11. }   
  12.    
  13. MainWindow::~MainWindow()   
  14. {   
  15.     delete ui;   
  16. }   
  17.    
  18. void MainWindow::on_pushButton_clicked()   
  19. {   
  20.     this->hide();   
  21.     dialog1.show();   
  22.     dialog1.exec();   
  23.     this->show();   
  24.    
  25. }   
  26.    
  27. void MainWindow::on_pushButton_2_clicked()   
  28. {   
  29.     this->close();   
  30. }   
  31.    
  32.    
  33.    
  34. void MainWindow::on_pushButton_3_clicked()   
  35. {   
  36.     this->close();   
  37.     dialog2.show();   
  38.     dialog2.exec();   
  39.     this->show();   
  40. }   


dialog1.cpp

[cpp]  view plain  copy
  1. #include "dialog1.h"    
  2. #include "ui_dialog1.h"    
  3.    
  4. Dialog1::Dialog1(QWidget *parent) :   
  5.     QDialog(parent),   
  6.     ui(new Ui::Dialog1)   
  7. {   
  8.     ui->setupUi(this);   
  9. }   
  10.    
  11. Dialog1::~Dialog1()   
  12. {   
  13.     delete ui;   
  14. }   
  15.    
  16. void Dialog1::on_pushButton_clicked()   
  17. {   
  18.    
  19.     this->close();   
  20. }   


dialog2.cpp与Dialog1相似

 

关键点:

this->close();
    dialog2.show();
    dialog2.exec();
    this->show();

通过等待dialog.exec()消息,判断主界面是否回显。

 运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值