加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
更新日志.txt 8.05 KB
一键复制 编辑 原始数据 按行查看 历史
//////////////////////////////////////////////////////////////////////////////////
DuiEditor使用说明
//////////////////////////////////////////////////////////////////////////////////
首先说明的是, 使用DuiEditor编辑界面的前提是, 你要会手写. 比如DuiEditor并不会禁止在Window下面直接插入一个List.
由于duilib有许多的个人维护版本, 为了更大的兼容, 设计器从duilib.xml载入控件属性. 需要给设计器增加新控件的话, 只需要编辑duilib.xml就可以. 如果一个控件在duilib.xml定义, 但界面库没定义, 设计器依然可以编辑属性, 但无法预览.
BUG或者建议可以给我发邮件, 53751257@qq.com, 欢迎赞助.
QQ群:819272442。
1, 控件的默认属性float=false, 非float控件的pos.left和pos.top总是为0, 不要用鼠标直接拖拽非float控件的位置. 这是duilib的布局特点决定的.
2, 关于pos,width,height属性值的冗余, 实际上duilib代码里面, width和height属性就是冗余的. 实在纠结这个的话, 非float控件不要用鼠标或键盘方向键调准位置大小,直接在属性面板中设置pos的值. 毕竟float控件用的很少.
3, 自定义控件的使用, 插入CustomControl时,修改类名.
4, DuiEditor附带一个xml编辑页面, 与NodePad++等专业工具比起来, 只有一个小小的优点, 实现了简单的语法提示. 我是经常会把VerticalLayout和HorizontalLayout写错的人. ^_^
5, 建议直接在面板中修改属性, 而不是用鼠标拖动位置,改变大小等等.
6, 软件可能有时候会崩溃, 随时保存文件.
2017-xx-xx
1, 完善绝对定位控件的对齐大小等等的设置
2, 类似于MFC编辑对话框资源, 直接输入文本设置控件的text.
2017-07-06
1, 测试窗体使用新建进程的方式, 设计器输出页面有测试窗体的事件显示. 有助于了解控件的触发事件.
DuiPreviewer.exe是设计器带的预览程序, 支持命令行. 如: DuiPreviewer.exe "-f c:\skin.xml".
另外, 可以设置附加测试程序.
2, 完善XML编辑页面, 看起来有点像nodepad++了.
增加代码折叠、颜色显示、查找替换、文件信息行列位置.
保存文件时XML解析错误提示,错误提示精确到行.
3, 增加选项设置, 载入文档时控件树展开的层数.
4, 增加样式表定义.
5, 增加控件视图中TabLayout右键菜单, 可以快速切换页面.
6, 增加自定义控件, 自定义控件有个custombasedfrom属性, 仅仅在设计器中使用. 表示父类名,设计器只创建它的父类。 如果没有这个属性,设计器不创建控件。
7, 增加选项直接插入float控件
8, 增加xml注释解析. 可以在布局文件中写入注释内容了.
9, 其他小修改等等.
2017-06-26
1, 控件属性字段的位置, 强制按照duilib.xml中属性定义的顺序.
2, 非float控件的pos.left和pos.top设置为0.
3, 修改了图片编辑页面.
4, 每次修改控件属性, 过滤一次默认属性值, 防止属性冗余. 原先是保存文件时才过滤.
2018-08-24
1, ui界面显示使用子窗口的方式,使设计器更加脱离库
2,优化编辑代码页面。
3, 增加设计界面显示UI效果,比如鼠标悬停点击等。
4,重新核对属性文件duilib.xml
目前已知的问题:
1, undo redo无法完美还原,因为没有保存ItemIndex.
2, default style font 这类定义设计器没有做即时更新,修改后,需要重新打开文件。 另外,如果share=true,设计器关闭之前一直有效,因为这是CPaintManager的静态函数设置的,设计器没有清理这类资源。
2019-02-05
1, 增加界面模板
2019-03-01
1, 新增 按住Ctrl键, 移动控件, 是为复制控件
2, 切换文档时, 更新属性窗口
2020-03-16
1,即时更新Style, 这个修改许要改动CPaintManagerUI::AddStyle(). 要重新打开文件才能刷新显示。
2, 即时更新Default. 要重新打开文件才能刷新显示。
3, 即时更新Font属性,即时显示.
2020-04-11
1, 设计器默认载入一个叫config.xml的配置文件,文件中集中定义Font,default,style信息。
这样定义的原因是,我们经常写一些子窗口,
然而设计器单独打开子窗口的时候,字体等信息都没载入,又要打开主窗口才有,这样很痛苦。
一般来说,应该把Shared属性的放config里面,但是并不强求。
项目文件打开后,config只能被载入一次。
注意原版的duilib并不支持build一个无控件的UI文件。
同样的,DuiPreviewer也会默认的载入config.xml
2020-07-26
1,设计器下方增加即时xml编辑窗口,编辑完成右键更新到设计界面。
2,选中控件自动定位到xml代码行,原本的代码编辑窗口也可以的。
2020-09-02
1, 我总觉得pos属性太多余了。
选项里面加了一条,保存文件时,非float控件,pos属性的大小等于width和height属性,移除pos属性
2, 选项里面增加了一条,设计界面是否显示duilib窗口阴影。处理不好,就不显示了吧。
3,优化了属性搜索。
4,整理选项参数结构,参数配置不写注册表了,存在当前目录下,DuiEditor.xml。
5, CComboExUI 增加了一个Type属性,dropdown支持编辑框。
5,其他一些优化
2020-10-05
1, 实现xml增量更新,手写xml实时响应,再不是reload,rebuild了.
2020-10-21
1,BUG修复,设计模式调整float控件时,更新xml文档错位了。
2, BUG修复,编辑Window属性时,没有刷新设计视图
3,设计视图,增加EnsureVisible功能。
4, 按键盘ESC关闭预览窗口
2020-10-23
1, 完善部分控件箱图标
2, 当Window的size为0时,使用设计视图客户区大小作为Window的size。
3, 状态栏增加一个图标,用于指示自动解析xml是否成功。鼠标悬停该图标时有tooltip错误信息。
4, BUG修复,没有关闭预览窗口时,直接关闭DuiEditor, 死掉了。
5, BUG修复,删除Window下的根节点,再插入布局控件时,xml的定位又错了。
6, 增加AccordionPane控件
目前来看增量更新还是存在问题的,更新出错时,如下解决方法:
如果是设计模式更新XML出错,编辑器中右键选择“刷新(重新载入文档并格式化)”,这个操作是reload文档。
如果是编写XML更新到设计视图出错,编辑器中右键选择“强制更新到设计视图”,这个操作是rebuild界面。
然后告诉我出错的操作流程。
2020-11-05
1,BUG修复,鼠标拖动复制控件时,定位错了。
2,部分优化
3,增加DuiLib控件展示demo
2020-11-28
1,无意间打开一个朋友的布局文件,手写的,无法达到xml输出格式的标准,比如多个空格空行啥的。原来设计器载入文档时,先解析xml,再从解析完的pugixml中格式化输出到编辑器中,显然就出错了。改为,打开文档第一次输出到编辑器中,直接从文件中载入。
2,把Scintilla编辑器加到DuiPlugins插件了,名称为SciEdit。
2021-01-06
1,多语言字符串列表读取接口改了,原先是GetString1(),GetString2(),去除GetString3()。GetString1()改成GetString(), GetString2改成GetStringExtra()。改动原因是GetString1(),GetString2()我经常写错。
2021-01-29
1,完善缓存文件功能,再也不怕崩溃未保存了。
2,增加VC2019项目配置。
2021-02-23
1,增加CGridList类,用于替代MFCGridCtrl
2,个别类从plugin移入duilib。
2021-03-05
1,设计界面,右键菜单增加命令“设置Style属性”。 这个命令支持选中多个控件去设置。
2021-03-16
1,通过框架创建的菜单,自动析构, 不需要外部delete m_pMenuWnd。
2,CIPAddressUI控件,SetWindowFont(m_hWnd, m_pOwner->GetManager()->GetFontInfo(m_pOwner->GetFont())->hFont, TRUE),窗口关闭时,会把相关hFont一起卸载掉。暂时找不到原因。所以在类的内部创建自己的hFont。
3, 优化设置Style属性的菜单
2021-03-25
1, 增加静态链接。
2,RichEdit默认改为rich=false。
3, 处理DateTimeExUI发送DTM_GETSYSTEMTIME消息连续接收两次的问题,并且增加DuiLib消息DUI_MSGTYPE_TEXTCHANGED。
4, EditUI增加大小写属性。
5,CComBoExUI 增加DeleteString函数,根据字符串删除下来项。
6, 数据交换类CUIDataExchange,增加绑定TabLayoutUI当前序号。
7, 修正VC2019编译问题
2021-03-30
1,升级图像库stb_image 2.25
2, 增加PictureUI控件
3, 修正BUG,设计器关闭已修改的文件,点击不保存时,下次打开设计器依然提示是否载入未保存的文件。
4, 整理代码
5, 增加vc2010模板向导
6, 优化图像编辑窗口, 新增SVG图片设定填充颜色。
7, 右键菜单增加字体设定
2021-05-01
1, 由于很多朋友编译CxImage失败,决定去除CxImage支持,Plugins删除PictureControlUI和ImageBoxUI。新版本对应的图像控件使用PictureUI和PictureBoxUI,功能基本差不多,唯一区别是Picture控件不支持ico。CxImage会保留在3rd中,如果项目中需要用到图片的简单操作,建议使用。
2,增加CTreeCtrlUI,这是我重写的tree控件,目前展开收缩支持动画显示。后续可能会支持虚树(虚表)机制。
3, 删除原来旗舰版中的UIComboBox,这个控件只是内部对combo的资源图片做解析,没什么大作用,但是搞得我经常写错,所以删了。
4, 删除UIAnimationPane和UIAccordionPane,整合到Container中。
5,其他一些零碎改动。
2021-05-07
1, 修复svg填充颜色的bug,优化图片编辑器中文件的图标显示。
2021-06-16
1, CGridListUI改名CGridUI,实表为“虚表实数据”,支持纯虚表。
2,CTreeCtrlUI改名CTreeUI,实表为“虚表实数据”,不支持纯虚表。
3, ApplyAttributeList嵌套style时,内部属性使用双引号解析失败的问题。
2021-06-28
1, duilib, 按钮增加bindtabindexname属性,指定页面名字。因为我有10几个页面,如果都用序号,后期中间再插入页面,我。。。。
2, 设计器,属性列表改动项显示为粗体,就是非默认值的属性。
3, 设计器,新建UI文件时可能因为滚条范围负数崩溃的问题,原因未知,直接过滤负数了。
4, 设计器,控件箱已选中控件时,在设计视图点击右键取消选中。原先是会弹出右键菜单。
5, 设计器,支持从控件箱拖控件,拖放控件会自动寻找容器,与左键点击添加控件有点区别。
6,duilib,配置x64工程,修复x64编译失败问题,暂时只有duilib和duiplugins可以编译x64。
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化