关于使用Duilib控件实现滚动效果

19 篇文章 0 订阅
9 篇文章 1 订阅

在开发过程中可能需要实现动态的滚动效果,这里记录一个Duilib控件实现滚动的例子。

上图中的每一条显示和每一组时间都是一个Label控件。

其中,竖线的实现方法是创建一个Label控件,然后设置该控件的SetFixedHeight属性和SetBkColor属性。至于滚动效果2和3有所不同。

3的滚动效果原理,将后一个控控件的高度赋值给前一个控件,最后一个控件则使用传入的值。

2的滚动效果原理,与3基本一致,只是2是初始化的时候就加载完成了。所以不需要传入值,只需要保留第一个控件的值,将后面的值赋值给前面的,最后将第一个的值赋值给最后一个即可。

1的滚动效果原理。整个1行的所有Label控件都在一个HorizontalLayout控件中,给该控件设置横向滚动属性,并在每次刷新控件时将当前位置设置到最右侧。第一行在初始化的时候已经创建成功,当每一次刷新的时候,判断最后一个Label控件的宽度(width),如果是设定的值(100)则创建新的Label控件并设置一个初始的值(2),并删除第一个Label控件。如果与设定的值(100)不相同则调整最后一个控件的宽度。

 

注意:在创建之初,1、2、3三行控件都是使用删除第一个控件与创建新控件在最后面,当时这样总会崩溃,原因不详可能与Duilib内部实现有关。所以才将2、3改成赋值的方式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
duilib 是一个基于C++的GUI库,用于构建Windows平台上的桌面应用程序。CEF(Chromium Embedded Framework)是一个开源项目,用于将Chromium引擎集成到其他应用程序中,实现浏览器功能。在duilib使用CEF控件可以实现在应用程序中嵌入一个内置的浏览器。 要在duilib使用CEF控件,首先需要下载CEF的二进制文件,并将相应的头文件和库文件链接到duilib项目中。然后在duilib的UI布局文件中添加一个容器控件用来承载CEF控件,比如一个<Control>标签定义一个名为"browser"的控件。接着在C++代码中通过CreateControl()方法创建CEF控件并将其添加到布局中的容器控件中。 在CEF控件中加载网页可以通过调用LoadURL()方法来实现,比如在初始化时可以加载一个初始的网页。同时也可以通过CEF提供的接口来处理网页加载完成、前进后退等事件。另外,也可以在CEF的控件中执行JavaScript代码,比如修改网页内容或者与网页交互等。 当应用程序退出时,需要通过调用CEF控件的Close()方法来释放资源并关闭CEF的相关进程。另外,需要确保在适当的时候调用CEF的资源释放方法,比如在窗口销毁前调用Shutdown()方法来释放资源。 在duilib使用CEF控件可以帮助开发者实现嵌入式浏览器功能,比如在应用程序中展示在线内容或者实现基于web的功能。同时也能够与duilib的其他控件进行交互,实现更加丰富的用户体验。通过合理的使用和管理,可以让应用程序在集成CEF控件的同时保持稳定性和性能。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值