当前位置: 首页 > news >正文

QT实现Home框架的两种方式

在触摸屏开发QT界面一般都是一个Home页面,然后button触发进入子页面显示,下面介绍这个home框架实现的两种方式:

1.方式一:用stackedWidget实现

(1)StackedWidget控件在Qt框架中是一个用于管理多个子窗口或页面的堆叠式容器。这个控件允许你在一个固定区域内显示多个子窗口,但同时只显示其中一个子窗口,其他子窗口则被堆叠在后面。

(2)代码

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    ui->stackedWidget->addWidget(&homeWnd);

    ui->stackedWidget->addWidget(&monitorWnd);

    ui->stackedWidget->addWidget(&settringWnd);

    ui->stackedWidget->addWidget(&aboutWnd);

    btnGroup.addButton(ui->btnHome, 0);

    btnGroup.addButton(ui->btnMonitor, 1);

    btnGroup.addButton(ui->btnSettring, 2);

    btnGroup.addButton(ui->btnAbout, 3);

    connect(&btnGroup, static_cast<void (QButtonGroup::*)(int)

            >(&QButtonGroup::buttonClicked),

            ui->stackedWidget, &QStackedWidget::setCurrentIndex);

    // 设置默认选中的页面

    btnGroup.button(0)->setChecked(true);

    ui->stackedWidget->setCurrentIndex(0);

}

(3)UI界面

2.方法二:用Frame控件实现

(1)Frame控件是一个用于包含其他控件的容器控件,主要用于创建分组框或边框效果。Frame控件继承自QWidget类,因此它具有所有QWidget的属性和方法。

(2)代码

#include "widget.h"

#include "ui_widget.h"

Widget::Widget(QWidget *parent)

    : QWidget(parent)

    , ui(new Ui::Widget)

{

    ui->setupUi(this);

    pconnect = new connect1(ui->frame);

    ptest  = new test(ui->frame);

    // ptest  = new test(this);  //全屏

    ptest->hide();

}

Widget::~Widget()

{

    delete ui;

}

void Widget::on_pushButton_clicked()

{

    pconnect->show();

    ptest->hide();

}

void Widget::on_pushButton_2_clicked()

{

    pconnect->hide();

    ptest->show();

}

(3)UI界面

http://www.lryc.cn/news/350019.html

相关文章:

  • 机器学习笔记03
  • 【全面介绍下Spring】
  • MYSQL-存储引擎
  • 红蓝对抗 网络安全 网络安全红蓝对抗演练
  • springboot 序列化和反序列化
  • 德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第一周) - 自然语言处理介绍和线性分类
  • SQL注入漏洞常用绕过方法
  • C语言输出符
  • 申请一个开发者域名
  • 接搭建仿美团、代付系统源码搭建教程
  • 迭代的难题:敏捷团队每次都有未完成的工作,如何破解?
  • ChatGPT未来可能应用于iPhone?
  • Spring之bean的细节(创建方式、作用范围、生命周期)
  • 探索STLport:C++标准模板库的开源实现
  • 计算机Java项目|Springboot高校心理教育辅导设计与实现
  • 数据结构简单介绍、算法简单介绍、算法复杂度、时间复杂度等的介绍
  • Google I/O 2024:有关AI的一切已公布|TodayAI
  • 【Shell脚本】Shell编程之数组
  • Python 全栈系列246 任务调度对象WFlaskAPS
  • 关于Windows中的NTUSER.DAT文件的知识,看这篇文章就差不多了
  • 【Linux】动态库与静态库的底层比较
  • 私活更好用:SpringBoot开源项目!!【送源码】
  • SprintBoot案例-增删改查
  • 【机器学习】:基于决策树与随机森林对数据分类
  • .NET 4.8和.NET 8.0的区别和联系、以及查看本地计算机的.NET版本
  • 23.HashMap的put方法流程
  • 元类结合__new__
  • (C语言)队列实现与用队列实现栈
  • 字符画生成网站 ascii字符画
  • 【C -> Cpp】由C迈向Cpp (6):静态、友元和内部类