duilib 自定义扩展列表

本文详细介绍了如何在duilib中自定义扩展列表,包括基本数据结构ListContainerElement及其应用,扩展数据结构Item和ItemInfo,数据管理接口的定义和实现,以及如何处理数据变化的回调。通过派生数据接口类,实现列表项的创建、删除和初始化,同时展示了如何在应用中使用这些自定义列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、扩展列表项

1、基本数据结构 列表项Item

1)、ListContainerElement 定义

2)、ListContainerElement 应用

2.1)、直接new一个

2.2)、CreateBox 创建

2.3)、FillBox 填充

2、扩展数据结构

1)、Item

1.1)、Item 类定义

1.2)、构造函数中,使用具体样式表填充

1.3)、列表项事件

1.4)、点击事件处理示例

2)、列表项的 额外数据信息 ItemInfo

3、数据管理

1)、数据接口类定义

1.1)构造时,传入具体某个列表的指针

1.2)、列表项 创建等接口

1.3)、数据查找管理接口

1.4)、数据发生变动时的回调函数

1.4.1)、定义回调类型

1.4.2)、注册回调

1.4.3)、数据改变时,发送回调

2)、派生的具体列表的数据提供类实现示例

2.1)、派生数据接口类

2.2)、具体的创建、删除、初始化 等功能实现

4、扩展列表

1)、扩展类定义

2)、设置对应的数据管理接口

3)、创建列表项

4)、删除

5)、注册的回调

5.1)、向本ListBox注册的回调

5.2)、向控件之外的窗口发送的回调

5.2.1)、ListBox中,也处理回调,同时也向外部发送

5.2.2)、ListBox 直接设置外部回调

5.2.3)、外部直接通过Provider设置感兴趣的回调

5、应用示例

1)、因为是自定义列表,所以重载窗口的CreateControl,在此创建新列表

2)、窗口初始化中,获得控件变量

3)、初始化自定义列表


前言

有横向列表了,为啥还要自己再派生个?

横向列表直接用 HListBox就可以了,这里为啥还要再派生个呢?

我的初始需求是这样的,当数据变化时,能及时获知数据变化的消息,将其显示出来,比如 当前3/4 

这里就需要对数据进行管理,为方便管理数据,使用了类似工厂模式。

基类,统一 数据创建、销毁、消息回调等功能,具体的由派生子类实现。

一、扩展列表项

1、基本数据结构 列表项Item

ListBox 容器,里面的元素是一个个的列表项ListContainerElement,这列表项也是一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水迎朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值