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。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【批量将视频转为图像序列】

批量将视频转为图像序列 代码如下,代码中带有解释: # 导入所需要的库 import cv2 import os import numpy as np# 多个视频所在的路径 datasets_path ["/home/y/Code/数据集/1/007f.mp4","/home/y/Code/数据集/1/05f.mp4","/…

UI界面中的图标设计趋势与最佳实践

作为UI设计师,在日常的工作中,避免不了做图标规范。今天跟大家聊一聊,UI设计中的图标设计。 规范的重要性不用多说了,没有规范多个设计师绘制的图标会有很多差异,描边粗细、角度、圆角度等等。今天的文章和大家聊一下…

Stable Diffusion - 编辑生成 (OpenPose Editor) 相同人物姿势的图像

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131818943 OpenPose Editor 是 Stable Diffusion 的扩展插件,可以自定义人物的姿势和表情,以及生成深度、法线和边缘图等信…

vue 集成tinymce2实现图片,视频以及文件的上传

vue 集成tinymce2实现图片,视频以及文件的上传 1. 安装插件 (1)安装tinymce npm install tinymce -S (2)安装tinymce-vue npm install tinymce/tinymce-vue3.0.1 -S 2. 复制静态文件到public目录 资源下载路径&…

Django入门

前言 早就想入门后端了,自己倒是用过Flask,对于常规网站来说Django更完善一些。稍微学习下,能够做一些简单业务处理就好啦。 跟着官方文档学习的,这里做一下记录。纯纯拿来用,不去研究原理与架构,无脑跟着…

17 | 从后端到前端:微服务后,前端如何设计?

微服务架构通常采用前后端分离的设计方式。作为企业级的中台,在完成单体应用拆分和微服务建设后,前端项目团队会同时面对多个中台微服务项目团队,这时候的前端人员就犹如维修电工一样了。 面对如此多的微服务暴露出来的 API 服务&#xff0c…

记一次从溯源分析到云服务器接管

起因是我这个臭运维的在给客户做常态化的溯源分析,好巧不巧发现了一个IP扔到奇安信威胁情报平台看一下,发现部署了大量的服务,且为阿里云服务器。 看到这里,我大胆的推测,云上的信息中心,客户花点钱&#x…

【产品设计】通用后台管理系统需求及原型设计

后台管理系统,会根据不同公司、不同业务的要求做出改变。 网上很多系统的参考多数为业务中台,过于带有业务色彩。做过三四个后台管理系统,从中总结了一个通用的功能和需求设计模版,供大家参考。本文适用于0-2岁的产品经理做基础功…

JVM中类加载的过程

文章目录 一、类加载是什么二、类加载过程1.加载2.验证3.准备4.解析5.初始化 三、什么时候进行类加载四、双亲委派模型1.三大类加载器2.加载过程 总 一、类加载是什么 把.class文件加载到内存中,得到类对象的过程。 二、类加载过程 1.加载 找到.class文件&#xff…

【问题解决】VSCode 远程安装插件特别慢

【问题描述】 我要配置 VSCode WSL 的开发环境,需要在 WSL 里也装上 C、CMake 系列的插件,如下图的直接下载方式特别慢: 【解决方法】 先去网站下载插件:https://marketplace.visualstudio.com/,后缀名:…

算法训练营第四十一天||● 343. 整数拆分 96.不同的二叉搜索树

● 343. 整数拆分 这道有难度,不看题解肯定 想不到用动态规划,看了题解后能大概明白,但还不是很清晰,不太明白递推公式中强调的与dp[i]还要比较一次,也不明白第一次去最大最的那个比较 需要后面继续看 动规五部曲&a…

无涯教程-Javascript - Switch语句

从JavaScript 1.2开始,您可以使用 switch 语句来处理这种情况,它比重复的 if ... else if 语句更有效。 流程图 以下流程图说明了switch-case语句的工作原理。 switch 语句的目的是给出一个要求值的表达式,并根据表达式的值执行多个不同的语…

酷开科技大屏营销,撬动营销新增量

5G、人工智能、元宇宙等技术的发展促使数字营销的内容、渠道、传播方式发生了一系列变化;存量竞争下,增长成为企业更加迫切、更具挑战的课题,品牌营销活动越来越围绕“生意增长”和“提效转化”的目标展开。 如今的市场环境下,产…

PID算法

PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。 需要将一个物理量保持在稳定状态(比如维持平衡,温度、转速的…

C#图片处理

查找图片所在位置 原理:使用OpenCvSharp对比查找小图片在大图片上的位置 private static System.Drawing.Point Find(Mat BackGround, Mat Identify, double threshold 0.8) {using (Mat res new Mat(BackGround.Rows - Identify.Rows 1, BackGround.Cols - Iden…

为什么项目可见性难以实现?该如何提高?

在项目和专业服务管理中,失败有时难以避免。沟通不足和需求定义不明确被认为是造成失败的最大原因,这意味着项目可见性和信息流动至关重要。 什么是项目可见性? 项目可见性是组织项目相关信息的方式,以便所有团队成员、项目经理…

LeetCode 75 第五题(345)反转字符串中的元音字母

题目: 示例: 分析: 给一个字符串,将里面的元音字母反转,并且保持非元音字母不变(包括顺序). 字符串反转类型的题,我们都可以使用双指针来解决:定义首尾指针,分别向中间靠拢,直到首尾指针都指向了元音字母,然后交换首尾指针所指的字母,如此不会影响到非元音字母,同时也将元音字…

pytest实现用例间参数传递的方式

pytest实现用例间参数传递的方式 一、通过conftest创建全局变量二、使用tmpdir_factory方法 我们在做接口自动化测试的时候,会经常遇到这种场景:接口A的返回结果中的某个字段,是接口B的某个字段的入参。如果是使用postman,那我们可…

CSS:给子元素设置了浮动,页面缩放的时候,子元素往下掉

前言 给子元素设置了浮动&#xff0c;页面缩放的时候&#xff0c;子元素往下掉 html代码&#xff1a; <div class"father"><div class"child1"></div><div class"child2"></div> </div>css代码 .child1…

Spring Batch之读数据库——JdbcCursorItemReader之使用框架提供的BeanPropertyRowMapper(三十六)

一、BeanPropertyRowMapper介绍 参考我的另一篇博客&#xff1a; Spring Batch之读数据库——JdbcCursorItemReader&#xff08;三十五&#xff09;_人……杰的博客-CSDN博客 二、项目实例 1.项目框架 2.代码实现 BatchMain.java: package com.xj.demo27;import org.spri…