DuiLib中的list控件以及ListContainerElement控件

文章目录

  • 前言
      • 1、创建list控件
      • 2、创建 ListContainerElement 元素,并添加到 List 控件中,这里的ListContainerElement用xml来表示
      • 3、在 ListContainerElement 元素中添加子控件
  • 1、List控件
  • 2、ListContainerElement控件

前言

在 Duilib 中,List 控件用于显示一个垂直滚动的列表,而 ListContainerElement 控件则用于作为 List 控件中的每个元素。下面是它们的基本使用方法。

1、创建list控件

CListUI* pList = new CListUI;
pList->Create(pParent, _T("list"), UI_WNDSTYLE_CHILD | UI_WNDSTYLE_VISIBLE, 0);

在这里插入图片描述

2、创建 ListContainerElement 元素,并添加到 List 控件中,这里的ListContainerElement用xml来表示

在这里插入图片描述

CListContainerElementUI* pElement = new CListContainerElementUI;
pElement->SetFixedHeight(50);  // 设置元素的固定高度
pElement->SetUserData(userData);  // 可以使用 SetUserData 存储自定义数据

pList->Add(pElement);  // 将元素添加到 List 控件中

3、在 ListContainerElement 元素中添加子控件

// 创建子控件
CLabelUI* pLabel = new CLabelUI;
pLabel->SetText(_T("Item Text"));
pLabel->SetTextColor(0xFF000000);
pLabel->SetBkColor(0xFFFFFFFF);

// 将子控件添加到 ListContainerElement 元素中
pElement->Add(pLabel);

通过上述步骤,你可以创建一个包含多个 ListContainerElement 元素的 List 控件,并在每个元素中添加不同的子控件来展示列表内容。你可以根据需要设置每个元素的高度、样式、数据等。

1、List控件

在 Duilib 中,ListContainerElement 是用于作为 List 控件中的每个元素的容器。它的作用是用来承载和管理每个列表项的子控件。

List 控件是一个垂直滚动的列表,每个列表项都由一个 ListContainerElement 元素来表示。ListContainerElement 可以包含多个子控件,用于展示和呈现列表项的内容。

通过 ListContainerElement,你可以在每个列表项中添加不同类型的子控件,如文本标签、图像、按钮等,以创建丰富多样的列表布局。你可以自定义每个列表项的外观和交互行为,以实现各种不同的列表需求。

ListContainerElement 还提供了一些常用的方法和属性,例如 SetFixedHeight() 可以设置列表项的固定高度,SetUserData() 可以存储自定义数据等。

总之,ListContainerElementDuilib 中扮演着承载和管理 List 控件中每个列表项子控件的角色,帮助你创建灵活、可定制的列表布局。

2、ListContainerElement控件

Duilib 中,ListContainerElement 是用于作为 List 控件中的每个元素的容器。它的含义是用来承载和管理每个列表项的子控件
在这里插入图片描述

ListContainerElement 可以看作是一个包含子控件的容器,它是 List 控件的子控件之一。 每个 ListContainerElement 对象对应 List 控件中的一个列表项,用于展示和呈现列表项的内容。
在这里插入图片描述

  • 首先创建List控件:
    在这里插入图片描述
  • 通过 CDialogBuilder 类的 Create 方法来创建一个控件对象 pControl。在这里,你使用了两种不同的方式来创建控件。
    在这里插入图片描述
  • 如果 builder_.GetMarkup()->IsValid() 返回 true,说明 builder_ 已经加载了有效的 XML 标记数据,那么你可以直接使用 builder_ 创建控件。 否则,如果 builder_.GetMarkup()->IsValid() 返回 false,说明 builder_ 还没有加载有效的 XML 标记数据,所以你需要使用 builder_ 的另一个 Create 方法来从指定的 XML 文件中创建控件。
  • 在这里,你传入了一个名为 “list_item.xml” 的 XML 文件进行创建。接下来,你调用 list_ui_->Add(pControl) 将创建的控件对象添加到 list_ui_ 中。
  • 需要注意的是,在添加控件之前,你需要确保 list_ui_ 已经被正确创建,并且 pControl 不为 nullptr。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/39817.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 集合 add()函数使用详解,集合添加元素

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 add函数使用详解 1、元素的顺序2、可以添加的元素类型3、添加重复的元素4、一次只…

Python爬虫学习笔记:1688商品详情API 开发API接口文档

1688API接口是阿里巴巴集团推出的一种开放平台,提供了丰富的数据接口、转换工具以及开发资源,为开发者提供了通用的应用接口及大量数据资源,支持开发者在1688上进行商品搜索、订单管理、交易报表及物流等方面的操作。 1688API接口主要包含以…

Unity游戏源码分享-单车骑行游戏

Unity游戏源码分享-单车骑行游戏 项目地址:https://download.csdn.net/download/Highning0007/88057717

MySQL之DML和DDL

1、显示所有职工的基本信息: 2、查询所有职工所属部门的部门号,不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。 …

react报错信息

报错信息 render函数里dom不能直接展示obj对象 取变量记得要有{} https://segmentfault.com/q/1010000009619339 这样在写的时候就已经执行方法了,所以此处用箭头函数()》{}才会在点击时执行或者 遍历数据使用map来遍历,使用forea…

TCP和UDP的区别

连接:TCP 是面向连接的传输层协议,传输数据前先要建立连接;UDP 是不需要连接,即刻传输数据。首部开销:TCP 首部长度较长,首部在没有使用「选项」字段时是 20 个字节,如果使用了「选项」字段则会…

概率论的学习和整理17:EXCEL的各种期望,方差的公式

目录 1 总结 1.1 本文目标总结方法 1.2 总结一些中间关键函数 2 均值和期望 2.1 求均值的公式 2.2 求随机变量期望的公式 2.3 求随机变量期望的朴素公式 3 方差 3.1 确定数的方差 3.2 统计数的方差公式 3.3 随机变量的方差公式 3.4 EXCEL提供的直接计算方差的公式 …

CentOS目录详解

在centos中,最顶层的目录称作根目录, 用/表示。/目录下用户可以再创建目录,但是有一些目录随着系统创建就已经存在,接下来重点介绍几个常用目录。 /bin(binary)包含了许多所有用户都可以访问的可执行文件&a…

PostgreSQL MVCC的弊端优化方案

我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。 尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等…

如何在Appium中使用AI定位

当我们在写自动化测试脚本的时候,传统情况下一定要知道元素的属性,如id、name、class等。那么通过AI的方式定位元素可能就不需要知道元素的属性,评价人对元素的判断来定位,比如,看到一个搜索框,直接使用ai:…

【无标题】使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一样

问题:使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一样,在mac下,一切正常,看起来很舒服,但是当我把页面放在扩展屏幕下(27寸),再生成一个pdf,虽然排版一…

【算法基础:数据结构】2.3 并查集

文章目录 并查集算法原理(重要!⭐) 经典例题836. 合并集合(重要!模板!⭐)837. 连通块中点的数量(维护连通块大小的并查集)240. 食物链(维护额外信息的并查集&…

【AI绘画】AI绘画乐趣:稳定增强扩散技术展现

目录 前言一、Stable Diffusion是什么?二、安装stable-diffusion-webui1. python安装2. 下载模型3. 开始安装:4. 汉化:5. 模型使用:6. 下载新模型:7. 基础玩法 三、总结 前言 本文将借助stable-diffusion-webui项目来…

【数据结构与算法】哈夫曼编码(最优二叉树)实现

哈夫曼编码 等长编码:占的位置一样 变长编码(不等长编码):经常使用的编码比较短,不常用的比较短 最优:总长度最短 最优的要求:占用空间尽可能短,不占用多余空间,且不…

网络版计算器

本次我们实现一个服务器版本的简单的计算器,通过自己在应用层定制协议来将数据传输出去。 协议代码 此处我们为了解耦,采用了两个类,分别表示客户端的请求和服务端的响应。 Request class Request { public:Request(){}Request(int x, int…

Unity 任意数据在Scene窗口Debug

任意数据在Scene窗口Debug 🍔效果🥪食用方法 🍔效果 如下所示可以很方便的把需要Debug的数据绘制到Scene中(普通的Editor脚本只能够对MonoBehaviour进行Debug) 🥪食用方法 💡. 新建脚本继承Z…

实例018 类似windows xp的程序界面

实例说明 在Windows XP环境下打开控制面板,会发现左侧的导航界面很实用。双击展开按钮,导航栏功能显示出来,双击收缩按钮,导航按钮收缩。下面通过实例介绍此种主窗体的设计方法。运行本例,效果如图1.18所示。 ​编辑…

如何顺势而为,让ChatGPT为教育所用?

恐惧和回避无法阻挡科技的浪潮,教育与AI的深度融合时代已经到来,如何把AI当做工具,把其成为教育的机会而非威胁,是教育体系未来不得不得面对的新变化。 接受ChatGPT作为一种教学辅助工具,成为教师的朋友或者帮手&…

Leetcode每日一题:979. 在二叉树中分配硬币(2023.7.14 C++)

目录 979. 在二叉树中分配硬币 题目描述: 实现代码与解析: dfs(后序遍历) 原理思路: 979. 在二叉树中分配硬币 题目描述: 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对…

5.postgresql--COALESCE

在 PostgreSQL 中, COALESCE函数返回第一个非空参数。它通常与 SELECT 语句一起使用以有效处理空值。 COALESCE函数接受无限数量的参数。它返回第一个不为空的参数。如果所有参数都为 null,则 COALESCE函数将返回 null。 COALESCE函数从左到右计算参数&a…