[Qt]利用Qt实现多界面切换
程序员文章站
2022-05-28 11:55:53
...
最近博主的软件编写用到了多界面,于是,写了个小实例来分享给大家,如何进行Qt软件的多界面编写实现~也可以下载直接体验多界面实现小实例
1、首先,先创建一个新文件,并在里面添加新的Qt设计界面
可以得到如图,mainwindow是主界面,widget是我新添加的子界面
2、注意将子界面的.h文件添加主界面的.h中
3、在主界面的.h中,添加子界面的变量及打开子界面和处理子界面信号的函数(在主ui中创建按钮)
4、在子界面.h文件中,添加打开主界面函数和信号(在子ui中创建按钮)
5、在主界面.cpp中连接信号和槽,及对应函数
6、在子界面.cpp中,写相关函数和信号
最终结果:
主界面和子界面间,通过按钮进行相互切换~
下面附上源码:
Mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "widget.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
void dealslot();
private:
Ui::MainWindow *ui;
widget wid;
};
#endif // MAINWINDOW_H
Widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class widget;
}
class widget : public QWidget
{
Q_OBJECT
public:
explicit widget(QWidget *parent = nullptr);
~widget();
private slots:
void on_pushButton_clicked();
signals:
void ChangeUiSlot();
private:
Ui::widget *ui;
};
#endif // WIDGET_H
Mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "widget.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//connect(&wid,SIGNAL(ChangeUiSlot()),this,SLOT(dealslot()));
connect(&wid,&widget::ChangeUiSlot,this,&MainWindow::dealslot);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
this->hide();
wid.show();
}
void MainWindow::dealslot()
{
this->show();
wid.hide();
}
Widget.cpp
#include "widget.h"
#include "ui_widget.h"
widget::widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::widget)
{
ui->setupUi(this);
}
widget::~widget()
{
delete ui;
}
void widget::on_pushButton_clicked()
{
emit ChangeUiSlot();
}
Main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
赶快去试试吧~!喜欢记得点赞支持哦!
推荐阅读
-
IDA Pro 6.0使用Qt框架实现了跨平台的UI界面
-
手把手教你实现漂亮的Qt 登录界面
-
Qt5.11 利用QWebChannel实现C++与JS的交互
-
Qt下的进程界面之间的鼠标焦点切换
-
Qt实现苹果状态切换按钮
-
C/C++ Qt TabWidget 实现多窗体创建详解
-
用Qt实现QQ好友列表界面伸缩功能(完全一模一样)(伸展和收缩、抽屉效果、类似树形控件)(鼠标划过QSS效果)
-
利用Qt/C++在腾讯云/阿里云服务器搭建TCP/IP协议实现网络通信以及Qt在linux下的安装和程序打包踩坑(详解)
-
MFC程序中使用QT开发界面的实现步骤
-
33.qt quick-PathView实现好看的home界面