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

这篇具有很好参考价值的文章主要介绍了[QT基础]QT不同ui界面的简单切换(C++)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,设备版本

        window10,QT 5.11.1,语言c++

二,设计需求

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

三,代码设计 

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

QT界面创建

1,代码思路

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

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

QT增加界面文件

2,文件需求

        拥有两个ui界面文件

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

3,ui文件布局

mainwindow1.ui

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

 mainwindow2.ui

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

 4,界面跳转代码

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

界面1.h文件      

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

界面1.cpp文件 

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

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

5,信号与槽跳转

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

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

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

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

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

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

qt多个ui界面切换,QT基础学习,ui,c++,开发语言,qt

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

四,代码源码 

mainwindow1.h

#ifndef MAINWINDOW1_H
#define MAINWINDOW1_H

#include <QMainWindow>
#include "mainwindow2.h"
namespace Ui {
class MainWindow1;
}

class MainWindow1 : public QMainWindow
{
    Q_OBJECT

public:
    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_OBJECT

public:
    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文章来源地址https://www.toymoban.com/news/detail-772443.html

#include "mainwindow1.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow1 w;
    w.show();

    return a.exec();
}

到了这里,关于[QT基础]QT不同ui界面的简单切换(C++)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT调用不同UI界面响应,对话框跳转到主页面UI,用信号与槽传递信息,两级信号传递

    在MainWindow界面有一个按键”新建”,点击后需要生成一个输入对话框,实例用到了processDialog类对象。 我新建一行数据完成后,需要更新MainWindow表格的视图,此时就需要调用写在MainWIndow下的函数MainWindow::showProcess(vectorPCB* readyQueue) 但是如果实例化一个MainWidow对象,此时修改的

    2024年02月12日
    浏览(56)
  • 基于C++和Qt封装一个简单的socket(TCP/IP)通信UI界面

            最近在学习TCP/IP和socket套接字的有关知识,了解了三次握手四次挥手,TCP协议等等一大堆知识,但纸上得来终觉浅。网络上C++代码实现socket通信的资料很多,方便学习,于是想到自己用Qt实现一个基础的具有网络通信收发功能的服务端UI软件。进入正题:        

    2024年02月08日
    浏览(54)
  • PyQt6 使用Qt Designer实现简单的界面,以及ui文件转py文件

    前言,主要通过参考并总结两篇文章中的部分内容,参考文章一 参考文章二 新增一个用户注册界面,包含用户名,密码,性别,手机号,点击注册按钮时,弹出一个对话框,提示恭喜 “{用户输入的用户名}” 注册成功。但是无奈还没找出获取最新输入用户名的值,就简单做

    2024年02月04日
    浏览(50)
  • Qt学习1:ui界面显示实时时间(自己学习用)

    Qt获取系统当前时间,ui界面显示实时时间和日期。 一、ui放入Qlabel 开关按钮是控制灯的,不用管。 1. 静态时间显示用虚拟text 二、.cpp添加代码 槽是 C++ 成员函数,可以被调用。 private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。(一对一关系) 在

    2024年02月08日
    浏览(45)
  • QT学习开发笔记(项目实战之智能家居物联 UI 界面开发 )

    项目路径为 4/01_smarthome/01_smarthome/01_smarthome.pro,先看项目界面。项目界面如 下,采用暗黑主题设计,结合黄色作为亮色,让用户一目了然。界面笔者从一些智能家居界面 中找到灵感的,编写设计完成的效果不错!请自行查阅源码,掌握了本教程前面第七章的内容, 就可以理

    2024年02月16日
    浏览(50)
  • QT桌面(实现界面的滑动切换)

    在ARM Linux中使用QT如何实现滑动翻页切换界面的效果呢?在ARM中是没有自带的鼠标的,那么我们如何实现滑动翻页呢?经过测试发现在ARM中运行QT程序也是可以通过重写鼠标事件来捕获触屏动作的,在ARM中滑动屏幕被定义成了鼠标左键事件,那么这样就有思路了, 重写鼠标事

    2024年02月06日
    浏览(42)
  • C++学习之路(七)C++ 实现简单的Qt界面(消息弹框、按钮点击事件监听)- 示例代码拆分讲解

    这个示例创建了一个主窗口,其中包含两个按钮。第一个按钮点击时会显示一个简单的消息框,第二个按钮点击时会执行一个特定的操作(在这个例子中,仅打印一条调试信息)。 功能描述: 创建窗口和布局: 使用 QWidget 和 QVBoxLayout 创建主窗口并设置垂直布局,将按钮放置

    2024年02月04日
    浏览(68)
  • QT之滑动切换UI框架

    使用QT制作一个UI图片切换框架。 思路:主要通过移动像素坐标差值来判断方向,左上角坐标为(0,0),右加左减,松开减去按压时的横坐标大于0则右移,否则左移。 添加点击事件 点击事件实现 video

    2024年02月16日
    浏览(33)
  • Qt调用主界面ui

    在其他类中使用主界面ui,this,控件操作等 首先,子类需要包含主界面的头文件和ui_xx.h文件,声明主界面类 然后使用构造函数把主界面的指针传递给子类 子类头文件: 子类cpp文件: 主界面头文件设置ui为公有: 主界面cpp文件设置: 效果图:

    2024年02月02日
    浏览(55)
  • Qt纯代码实现UI界面

    设置编辑框内容的字体样式,包括加粗、下划线、斜体、蓝色、红色、黑色

    2024年01月19日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包