该文章转自:/kf/03/124441.html!
Qt多窗口切换程序
1.ui文件中布局
2.主要程序
main.cpp
#include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
主界面程序:
mainwindow.h
ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include "dialog1.h" #include "dialog2.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_pushButton_3_clicked(); private: Ui::MainWindow *ui; Dialog1 dialog1; Dialog2 dialog2; }; #endif // MAINWINDOW_H
mainwindow.cpp
">#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { this->hide(); dialog1.show(); dialog1.exec(); this->show(); } void MainWindow::on_pushButton_2_clicked() { this->close(); } void MainWindow::on_pushButton_3_clicked() { this->close(); dialog2.show(); dialog2.exec(); this->show(); }
dialog1.cpp
#include "dialog1.h" #include "ui_dialog1.h" Dialog1::Dialog1(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog1) { ui->setupUi(this); } Dialog1::~Dialog1() { delete ui; } void Dialog1::on_pushButton_clicked() { this->close(); }
dialog2.cpp与Dialog1相似
关键点:
this->close();
dialog2.show();
dialog2.exec();
this->show();