
duilib
文章平均质量分 73
mmcanyu
这个作者很懒,什么都没留下…
展开
-
DuiLib表格类和树控件 虚表实体数据
实际使用中发现,虚表模式编辑表格时,挺啰嗦的。比如选中多行时,这个选中行信息是需要调用方自己维护的。所以我认为虚表只适合列表模式下的数据展示,比如中数据库或者文件中读取行去显示。上一个版本中,实表模式有点鸡肋,不仅速度慢还非常占用内存。这次改动很大,主要是奔着实表模式下节约内存和提高速度去的,我在原有的基础上做改动,结果推倒重来无数次,忍无可忍只好从白板开始重新写了。CGridListUI、CGridListHeaderUI、GGridListBodyUI、CGridListRowUI、CGridL原创 2021-06-16 18:27:18 · 1442 阅读 · 5 评论 -
DuiLib表格类 1
一直以来duilib并没有Grid,大多还是使用CListUI做数据表格,或者有些人像我一样,把CGridCtrl(也就是MFCGridCtrl)这个开源库拉进来用。只是CGirdCtrl有个不好的是它继承自CWnd类,是个MFC类,为此,特意开发CGridListUI,作为数据表格,同时为了以后在项目中替代CGridCtrl。CGridListUI主要是结合CListUI和CGridCtrl,我的目标是替代CGridCtrl,所以函数调用等格式尽量兼容CGridCtrl。每个单元格都是一个容器原创 2021-02-23 15:38:16 · 1368 阅读 · 0 评论 -
正式发布DuiLib脚本系统 结合angelscript
这篇主要介绍duilib如何使用脚本。我认为脚本的存在的意义就是补充UI库的不足,与业务逻辑无关的UI操作,都应该在脚本中完成。在所有类C++脚本语言里,angelscript与C++的相似度是最高的,不需要学习新的语法。并且,C++开发的软件集成angelscript也很方便。需要注意几点,1,和所有脚本语言一样,脚本中没有指针,相应的操作是“@”为指针,&为引用。比如脚本中这么写,CPaintManagerUI @pManager = btnControl.GetManag原创 2021-01-23 11:53:29 · 1246 阅读 · 1 评论 -
DuiLib中图片属性的编辑
DuiLib中图片属性的编辑在DuiLib中图片属性编辑还是挺麻烦的一件事情,特别是手写xml。这次介绍如何在DuiEditor中可视化操作,轻松快速选取图片。先看一下界面:接下来主要演示各种场景的使用,以及image属性的含义。1,dest属性。如下图,我想在这个按钮的确认前面加个图标,...原创 2020-12-15 01:08:00 · 2758 阅读 · 3 评论 -
DuiLib多语言解决方案
DuiLib多语言解决方案我参考了一下现有的duilib多语言解决办法,基本上就是手工维护字符串列表,在GetText中通过偷梁换柱的方式把显示的文本替换掉了,包括tooltip、tipvalue,其中也可以把image属性也作为多语言的字符串处理,还有在DiableBuilder偷偷换掉xml名字去加载。特点都是纯手工维护,对于稍微大型的软件,维护起来就困难重重。为了贯彻能偷懒就偷懒的方针,决定依靠设计器实现统一维护多语言包。我的想法是,回归到数字ID作为属性去匹配字符串,每个xml产生单独.原创 2020-12-08 11:30:13 · 1676 阅读 · 5 评论 -
duilib仿百度网盘界面
duilib仿百度网盘界面这一篇我们介绍使用DuiEditor做一个百度网盘的demo界面。首先简单分析一下这个界面,这是一个上下布局结构,第一层包括了标题拦、工具栏,第二层为客户区。1,新建文件,保存为MainFrame.xml,并设置Window大小为1000,700。设置VerticalLayout背景色为白色。2,选中左边控件树VerticalLayout,依次插入一个HorizontalLayout和Tab...原创 2020-10-05 17:12:06 · 2384 阅读 · 5 评论 -
DuiEditor高级教程
DuiEditor的高级教程这一章主要介绍DuiEditor的设计技巧和说明。一,duilib.xml属性文件。这个文件标注了duilib的所有控件和属性,在老版的DuiDesigner里面,控件和属性都是写死的,不方便扩展,如果你改动了属性默认值或者增加控件等等,修改设计器会变成很烦躁的工作,不仅复杂还不好维护。为此,DuiEditor在原版的属性文件上做了一写扩展,设计器仅从这个文件载入控件和属性。比如你为duilib写了一个...原创 2020-06-27 00:11:48 · 1862 阅读 · 0 评论 -
duilib设计器 DuiEditor简易教程 (DuiDesigner) (三)
DuiEditor简易教程(二)4,设计主界面继续。上一章有个错漏的地方,没有给工具栏按钮设置group属性。回到界面设计,工具栏下来是一条水平分割线。它只需要3个属性就搞定了。接下来是主界面,这里有两排,一排Option和Tablayout页面。我们原先插入的是HorizontalLayout控件,应该是错了。点击设计器工具栏的代码按钮,如图,把箭头所指HorizontalLayout改成VerticalLayout。取名...原创 2020-06-19 00:06:36 · 2196 阅读 · 5 评论 -
duilib设计器 DuiEditor简易教程 (DuiDesigner) (二)
DuiEditor简易教程接上文。3,设计工具栏。这个工具栏分2部分,左边是工具栏按钮,右边是一个大的logo图片。选中工具栏这一块的HorizontalLayout,为了方便述说,取名为HC。在HC中插入2个HorizontalLayout子控件,分别取名为HD,HE。设置HE的属性width=150,在HE中插入一个按钮,给按钮设置bkimage=logo.png。当然也可以不插入按钮而是直接给HE设备背景图片,其实这个按钮...原创 2020-06-17 10:49:41 · 1631 阅读 · 0 评论 -
duilib设计器 DuiEditor简易教程 (DuiDesigner) (一)
DuiEditor简易教程一,DuiEditor是什么?DuiEditor是duilib界面库的界面设计器,编写过程中参考了老版UIDesignner的大量代码,改名只是为了稍作区分,没有任何剽窃或不尊重原作者之意。其实这个工具已经写了好几年了,提不起太大的兴趣写什么教程,自己好用就行,毫无疑问的,设计器比手写xml大大的提高了效率。DuiEditor已经开源,任何公司或个人可以随意修...原创 2020-06-15 16:02:13 · 10014 阅读 · 10 评论 -
给duilib增加脚本支持(三)
这一章介绍脚本插件的编写,现在才是划重点的时候了。angelscrript的作者提供了很完整的文档,由于本人英语有限,我错误恳请指出。angelscript简直就是给C++程序量身订造的脚本语言,和C++语言基本无差别,还是那句话,可惜没有流行起来。不说闲话,开始上代码。先定义两个导出函数。供duilib回调创建脚本引擎和删除脚本引擎。extern "C" __declspec(dlle...原创 2020-04-06 12:34:34 · 336 阅读 · 0 评论 -
给duilib增加脚本支持(二)
上篇文章介绍了脚本响应duilib控件事件,以及脚本中调用duilib的函数。现在说一下具体的实现方式。为了避免对duilib库太大的改动,使用插件方式载入。首先在CPaintManagerUI头部定义一个接口。class UILIB_API IScriptEngine{public: virtual bool AddScriptCode(LPCTSTR pScriptCod...原创 2020-04-06 11:25:30 · 310 阅读 · 0 评论 -
给duilib增加脚本支持(一)
1原创 2017-08-11 20:17:49 · 801 阅读 · 0 评论