在Qt编程中经常遇到多个界面之间的切换, 比如从登录界面跳转到主界面, 主界面跳转到设置界面,在返回到主界面
下面更加这个流程实现一个例子:
主界面:
添加第二个界面
#include "dialog.h"
#include "ui_dialog.h"
#include "mainwindow.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::on_pushButton_clicked()
{
MainWindow *gui1 = new MainWindow ;
gui1->show();
this->hide();
}
#include "mainwindow.h"
#include "dialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
Dialog w1;
// w.show();
w1.show();
// delete this;//把主界面删除
return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "dialog.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
Dialog *gui2 = new Dialog ;
gui2->show();
this->hide();
// this->close();//这里不能用delete,因为this是main函数中创建的栈空间系统自动释放
}
按下按键后