首页 > 其他分享 >QStackedLayout栈布局小案例

QStackedLayout栈布局小案例

时间:2023-12-22 14:23:30浏览次数:30  
标签:StackedLayoutExampleWindow listWidget 布局 案例 QWidget 400 QStackedLayout new

一、概述

  使用QStackedLayout+QListWidget切换布局。如下:

 

二、示例

#include "StackedLayoutExampleWindow.h"

StackedLayoutExampleWindow::StackedLayoutExampleWindow(QWidget *parent)
    : QWidget(parent)
{
    this->setWindowTitle("StackedLayout布局");
    
    //创建主容器
    QHBoxLayout* hLayout = new QHBoxLayout;
    //创建一个ListWidget(列表)
    QListWidget* listWidget = new QListWidget(this);
    listWidget->setMinimumWidth(150);
    listWidget->setFont(QFont("宋体", 14));
    listWidget->addItem("添加Button");
    listWidget->addItem("添加图片");

    QWidget* widget1 = new QWidget(this);//第一个栈容器的内容
    widget1->setMinimumSize(400, 400);
    Button* but1 = new Button(widget1);
    but1->setText("提莫队长正在待命");

    QWidget* widget2 = new QWidget(this);//第二个栈容器的内容
    widget2->setMinimumSize(400, 400);
    QLabel* image = new QLabel(widget2);
    image->setScaledContents(true);
    image->setFixedSize(400, 400);
    cv::Mat src = imread("images/flowers.jpeg");
    image->setPixmap(ImageUtils::getPixmap(src));

    QStackedLayout* stackedLayout = new QStackedLayout;//栈布局
    stackedLayout->addWidget(widget1);
    stackedLayout->addWidget(widget2);

    hLayout->addWidget(listWidget, 1);//左边容器布局占整个容器的1/5
    hLayout->addLayout(stackedLayout, 4);//右边容器布局,占整个容器的4/5

    //把布局添加到Widget中
    this->setLayout(hLayout);

    //给listWidget添加事件,监听QListWidget::currentRowChanged信号,&QStackedLayout::setCurrentIndex槽函数
    connect(listWidget, &QListWidget::currentRowChanged, stackedLayout, &QStackedLayout::setCurrentIndex);
}

StackedLayoutExampleWindow::~StackedLayoutExampleWindow()
{
}

 

标签:StackedLayoutExampleWindow,listWidget,布局,案例,QWidget,400,QStackedLayout,new
From: https://www.cnblogs.com/tony-yang-flutter/p/17921483.html

相关文章

  • QFormLayout表单布局
    一、概述新建一个简单的登录表单布局QFormLayout。如下: 二、代码示例#include"FormLayoutExampleWindow.h"FormLayoutExampleWindow::FormLayoutExampleWindow(QWidget*parent):QWidget(parent){this->setWindowTitle("Form表单");//表单布局......
  • 内蒙古某市财政提升IT基础监控运维案例剖析
    随着信息化建设的不断推进,内蒙古某市财政局的网络及运维管理面临着越来越多的挑战。为了解决这些问题,该财政局引入了监控易管理平台7.0,从而提升了IT基础监控的运行效率。一、现状与挑战随着财政局信息化的不断推进,其网络及运维管理面临着诸多问题。首先,该财政局的网络架构复杂,设备......
  • 服务器数据恢复-操作系统重装操作失误导致OceanStor存储xfs分区无法访问的数据恢复案
    服务器数据恢复环境:某品牌OceanStorT系列某型号存储+MD1200磁盘柜,组建的raid5磁盘阵列。上层分配了1个lun,安装的linux操作系统,划分两个分区,分区一通过lvm进行扩容,分区二格式化为xfs文件系统。服务器故障:重装系统操作失误导致上层linux操作系统分区改变,XFS文件系统分区由于未知原......
  • 软件需求与分析课堂测试十一 —综合案例建模分析
    软件需求与分析课堂测试十一—综合案例建模分析(100分)销售订货管理系统是ERP的源头,如何管控销售订单下达、评审、跟进,不光是从软件上做约束管理,同时要从工作流程规定上做规范。【开发目的】规范公司订单下达、评审业务流程,提高客户订单准时交货率。【适用范围】适用于公司订......
  • 应用案例 | 汽车行业基于3D机器视觉引导机器人上下料解决方案
    Part.1 背景近年来,汽车行业蓬勃发展,一度出现供不应求的现象。在汽车零配件、整车大规模制造的过程中,为了降本增效,提升产品质量,工厂急需完成自动化升级。随着人工智能的发展,越来越多的生产环节引入机器视觉引导器人进行自动化改造。机器视觉引导机器人技术在汽车领域典型应用场景包......
  • Aloudata 两项 Data Fabric 最佳实践获评 2023 信通院大数据“星河”案例标杆案例
    12 月 20 日,由中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)组织的第七届大数据“星河(Galaxy)”案例征集结果正式发布。Aloudata (大应科技)脱颖而出,联合标杆客户招商银行共同申报两项 Data Fabric 最佳实践成果双双获评“标杆案例”。其中《招......
  • 程序员必知!开放封闭原则的实战应用与案例分析
    开放封闭原则是面向对象设计中的重要原则之一,它要求软件实体(类、模块、函数等)应该对扩展开放,但对修改关闭。这意味着当需要添加新功能时,不应该修改现有的代码,而是应该通过扩展来实现。这可以通过使用接口、抽象类和多态等机制来实现,从而使系统更加灵活和可扩展。定义开放封闭......
  • 【中小型企业网络实战案例 一】规划、需求和基本配置
    原创:厦门微思网络案例拓扑图案例需求在中小园区中,S5735通常部署在网络的接入层,S8700通常部署在网络的核心,出口路由器一般选用AR系列路由器。核心交换机配置VRRP保证网络可靠性,配置负载分担有效利用资源。每个部门业务划分到一个VLAN中,部门间的业务在CORE上通过VLANIF三层互通。核心......
  • 多开软件在Windows电脑上的实际使用案例
    【多开软件在Windows电脑上的实际使用案例】在日常生活和工作中,我们经常会遇到需要同时打开多个相同程序的情况,比如同时登录多个社交账号、同时进行多个游戏账号操作等。而针对这种需求,多开软件应运而生,它可以帮助用户在Windows电脑上轻松实现多个相同程序的同时运行。接下来,我们......
  • 容器化部署案例
    1.wordpress容器化为什么要容器和?为的就是容器提供的隔绝的名称空间,彻底解决软件依赖的错误,特别是php这种语言,经常性的需要更新,出现版本漏洞等,以及太多的版本,太多的依赖,难以管理,将你的宿主机搞的一团糟。容器化之后,太香了。具体如何描述要容器化迁移?1.便于快速更新,因为......