跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > [QT基础]QT不同ui界面的简单切换(C++)

[QT基础]QT不同ui界面的简单切换(C++)

时间:2024-04-24 07:30:17 来源:网络cs 作者:康由 栏目:卖家故事 阅读:

标签: 简单  基础  界面 
阅读本书更多章节>>>>

一,设备版本

        window10,QT 5.11.1,语言c++

二,设计需求

        设计两个ui界面,能实现一个ui界面到另一个ui界面的跳转。

三,代码设计 

为了以防万一,如果是第一次使用qt创建ui界面可以参考以下博客

QT界面创建

1,代码思路

        两个ui界面,使用一个按钮进行页面的切换,考虑到实际的应用场景,这里是通过两个具体的ui文件,让使用者从一个界面文件跳转到另一个界面文件,而不是在一个界面文件中创建两个界面,这样可以方便实际使用时对各个的界面布局。

ps:如果不知道如何给已有的文件继续添加ui界面文件,可以参考以下博客

QT增加界面文件

2,文件需求

        拥有两个ui界面文件

3,ui文件布局

mainwindow1.ui

 mainwindow2.ui

 4,界面跳转代码

        根据已有思路,在mianwindow1中创建一个mainwindow2的对象,通过按钮的槽函数进行mainwindow1的界面跳转到mianwindow2界面的跳转。

界面1.h文件      

界面1.cpp文件 

         经过上面的步骤,我们已经能从界面1转到界面2。当然如果我们想从界面2转到界面1,用这个方法依然可以,但是我们还可以用信号与槽的方式让这个方式更简便。

5,信号与槽跳转

        在界面2的头文件里面添加一个返回信号。

         让界面2的按钮在点击时发送这个信号。

         这样当我们在界面2时,只要点击按钮,就会发送一个返回的信号,这个时候,只要我们的界面1能接收到这个信号,那我们便能实现从界面2转到界面1的行为。

        界面1接收信号,并执行界面跳转。

        当然上面的槽函数也可以单独分离出来,实际情况根据需要进行修改即可。 

四,代码源码 

mainwindow1.h

#ifndef MAINWINDOW1_H#define MAINWINDOW1_H#include <QMainWindow>#include "mainwindow2.h"namespace Ui {class MainWindow1;}class MainWindow1 : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow1(QWidget *parent = 0);    ~MainWindow1();    MainWindow2 *window = NULL;private slots:    void on_pushButton_clicked();private:    Ui::MainWindow1 *ui;};#endif // MAINWINDOW1_H

mainwindow1.cpp

#include "mainwindow1.h"#include "ui_mainwindow1.h"MainWindow1::MainWindow1(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow1){    ui->setupUi(this);    this->window = new MainWindow2;    connect(window,&MainWindow2::goback,this,[=](){        window->close();        this->show();    });}MainWindow1::~MainWindow1(){    delete ui;}void MainWindow1::on_pushButton_clicked(){    this->hide();    window->show();}

mainwindow2.h

#ifndef MAINWINDOW2_H#define MAINWINDOW2_H#include <QMainWindow>namespace Ui {class MainWindow2;}class MainWindow2 : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow2(QWidget *parent = 0);    ~MainWindow2();signals:    void goback();private slots:    void on_pushButton_clicked();private:    Ui::MainWindow2 *ui;};#endif // MAINWINDOW2_H

mainwindow2.cpp

#include "mainwindow2.h"#include "ui_mainwindow2.h"MainWindow2::MainWindow2(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow2){    ui->setupUi(this);}MainWindow2::~MainWindow2(){    delete ui;}void MainWindow2::on_pushButton_clicked(){    emit goback();}

main.cpp

#include "mainwindow1.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow1 w;    w.show();    return a.exec();}

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-24/161648.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论