DuiLib中的list控件以及ListContainerElement控件

文章目录

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

前言

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

1、创建list控件

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

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

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

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

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

cpp 复制代码
// 创建子控件
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。
相关推荐
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
hairenjing11233 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
plmm烟酒僧6 小时前
Windows下QT调用MinGW编译的OpenCV
开发语言·windows·qt·opencv
Jtti8 小时前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
小奥超人9 小时前
PPT文件设置了修改权限,如何取消权?
windows·经验分享·microsoft·ppt·办公技巧
hairenjing112318 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
九鼎科技-Leo20 小时前
了解 .NET 运行时与 .NET 框架:基础概念与相互关系
windows·c#·.net
阿洵Rain1 天前
【C++】哈希
数据结构·c++·算法·list·哈希算法
九鼎科技-Leo1 天前
什么是 ASP.NET Core?与 ASP.NET MVC 有什么区别?
windows·后端·c#·asp.net·mvc·.net
黎明晓月1 天前
Java之字符串分割转换List
java·windows·list