多界面切换(QT登录跳转)
应用程序中经常需要在多个界面中跳转切换,最常见的就是登录跳转,下面是简单过程实现。
程序运行时,显示登录界面,点击登录后跳转至界面2执行具体业务。点击返回时回到登录界面。
界面1 登录界面
界面2 具体业务界面
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
signals:
void mysignal();
private slots:
void on_pushButton_clicked();
protected:
virtual void closeEvent(QCloseEvent *event);
private:
Ui::Dialog *ui;
};
#endif
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "dialog.h"
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_pushButton_clicked();
void my_show_slot();
private:
Ui::Widget *ui;
};
#endif
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
setWindowTitle("业务1");
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::on_pushButton_clicked()
{
emit mysignal();
this->close();
}
void Dialog::closeEvent(QCloseEvent *event)
{
emit mysignal();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowTitle("登录注册界面");
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{
Dialog *dia = new Dialog(this);
dia->show();
connect(dia,SIGNAL(mysignal()),this,SLOT(my_show_slot()));
this->hide();
}
void Widget::my_show_slot()
{
this->show();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)