QT實現多視窗切換
阿新 • • 發佈:2019-02-03
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();