Duilib教程-自动布局3-分隔条
先看一个常用的图,如下:

左边是导航栏,右边是信息区。
中间可以自由拉伸。
XML如下:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<Window size="695,542">
<HorizontalLayout width="695" height="542" bkcolor="#FFA0A0A4">
<HorizontalLayout width="200" bkcolor="#FF008080" sepwidth="6" sepimm="true" />
<HorizontalLayout bkcolor="#FFA6CAF0" />
</HorizontalLayout>
</Window>
sepwidth 全称为 seperator width,分隔条的宽度。这个值分正值、负值,正值表示分隔条在右边,负值表示分隔条在左边。
sepimm 全称为 separate immediately,立即拉伸,即鼠标一移动,马上就设置LAYOUT的大小。
DUILIB似乎有一个BUG,就是当左边被拖到宽度为0时,它为自动还原为原始大小。为了解决这个BUG,我们需要设置它的最小宽度,minwidth=”1”,这样BUG就不存在了咯。
解决这个BUG的时候,你也已经知道,如何限制左边的LAYOUT的大小了吧,maxwidth,如果设置了这个属性,指定了最大宽度,那它就会限制在一定大小了。以下的XML,读者可作测试:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<Window size="695,542">
<HorizontalLayout width="695" height="542" bkcolor="#FFA0A0A4">
<HorizontalLayout minwidth="50" maxwidth="300" width="200" bkcolor="#FF008080" sepwidth="6" sepimm="true" />
<HorizontalLayout bkcolor="#FFA6CAF0" />
</HorizontalLayout>
</Window>
这里要说明一个非常重要的规则:
如果分隔条是竖条的,|,那分隔条属性为sepwidth,它的LAYOUT必须是HorizontalLayout,即水平布局,因为只有水平布局被水平拉伸才是合理的。
如果分隔条是横条的,一,那分隔条属性为sepheight,它的LAYOUT必须是VerticalLayout,即垂直布局,因为只有垂直布局被垂直拉伸才是合理的。
所以,在上面的XML中,如果你将左边的LAYOUT换成VerticalLayout,你会发现分隔条无效,因为VerticalLayout根本没有sepwidth属性。
在设置横条的分隔条时,需要设置minheight、maxheight属性,这样便于控制其大小。sepheight为正时,表示分隔条在下方,为负时,表示在上方。
下面我贴一个拥有上下、左右分隔条的XML,同时包含正负值。

XML:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<Window size="695,542">
<HorizontalLayout width="695" height="542" bkcolor="#FFA0A0A4">
<HorizontalLayout sepwidth="5" sepimm="false" minwidth="50" maxwidth="300" width="137" bkcolor="#FF008080" />
<VerticalLayout>
<VerticalLayout bkcolor="#FF103A78" />
<VerticalLayout bkcolor="#FF5D4425" minheight="50" sepheight="-5" sepimm="true"/>
</VerticalLayout>
</HorizontalLayout>
</Window>
Duilib教程-自动布局3-分隔条的更多相关文章
- Duilib教程-控件练习
一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为 ...
- DevExpress的分隔条控件SplitterControl的使用
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- Qt代码创建分隔条
我们在使用Qt时,会发现在使用UI界面时可以添加窗口分隔条,但我们使用纯代码时却没有分隔条的类函数.这时候我们就需要手动添加,添加方式和Qt自定义标签按钮一样,下面我直接写代码.如果不知道怎么添加的, ...
- jQuery - 左右拖动分隔条
1.实现效果: 2.代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...
- Duilib教程-自动布局2
在上一节中,我简单介绍了控件随父LAYOUT自由移动的设置.在这一节,我将介绍一种常见的情况:嵌入窗口. 在项目中,我们很少会100%的编写一个软件,特别是界面相关的,我们会使用以前已经编写好的窗口, ...
- Duilib教程-自动布局1
我们要实现一个带标题栏和状态栏的程序,同时要支持拉伸,即包括最小化.最大化,图如下: XML: <?xml version="1.0" encoding="utf- ...
- YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]
封面图是作者运行图,我在 ubuntu 环境下只有文字预测结果. Detection Using A Pre-Trained Model 使用训练好的模型来检测物体 运行一下命令来下载和编译模型 gi ...
- Duilib教程-HelloDuilib及DuiDesigner的简单使用
一.HelloDuilib 1. 首先理解DUILIB显示的一个基本流程,如下图: 在Duilib中,WindowImplBase 这个类代表了图中 “CWndClass”. 所以我们需要做的是: 1 ...
- Duilib教程-非DUI控件
DUILIB并不是真正的DUI,至少有部分控件不是完全DUI的.其实包括: 1.EDIT. 它的实现原理是,CEditUI包含一个窗口CEditWnd,流程如下: 1)鼠标单击,创建窗口见 EditU ...
随机推荐
- 用MyEclipse10.0远程连接Mysql数据库服务器
说明:本文档所有的操作均在满足以下条件的情况下操作, A.远程Linux服务器已经安装好MySQL数据库 B.本地电脑可以ping通远程服务器 C.已经成功安装了Myeclipse 一.下载mysql ...
- canvas学习笔记(下篇) -- canvas入门教程--保存状态/变形/旋转/缩放/矩阵变换/综合案例(星空/时钟/小球)
[下篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...
- centos 7 生成文件名乱码的问题如何解决?
在应用脚本生成文件时,发现生成的文件名称出现乱码(似麻将一样).刚开始找来找去,以为是复制粘贴的原因,复制时复制了特殊字符导致的,结果修改源文件后发现生成的文件名还是乱码.后来在执行脚本时,提示&qu ...
- FreeBSD Top States
转自:http://blog.csdn.net/fcoolx/article/details/4412196 select Process is blocked in the select(2) sy ...
- Android studio 使用心得(五)—代码混淆和破解apk
这篇文章等是跟大家分享一在Android studio 进行代码混淆配置.之前大家在eclipse上也弄过代码混淆配置,其实一样,大家可以把之前在eclipse上的配置文件直接拿过来用.不管是.cfg ...
- SSE,MSE,RMSE,R-square 指标讲解
SSE(和方差.误差平方和):The sum of squares due to error MSE(均方差.方差):Mean squared errorRMSE(均方根.标准差):Root mean ...
- Office 365 离线安装
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://yueque.blog.51cto.com/4580340/1707479 有个O ...
- Effective Java-第三章
第3章 对于所有对都通用的方法 尽管Object是一个具体类,但是设计它主要是为了扩展,它所有的非final方法(equals,hashCode,toString,clone和finalize)都有明 ...
- atitit.atiOrm.js v2 q61 版本新特性.docx
atitit.atiOrm.js v2 q61 版本新特性.docx 1. V1新特性如下1 1.1. V2规划,直接生成sql在js端1 2. Orm设计框架图1 2.1. atiOrm.js的原理 ...
- [svc]msmtp+mutt发附件,发邮件给多个人
环境:centos6.7 x86-64 内网有web服务器(curl可展示目录) #预安装软件 yum install lrzsz ntpdate sysstat dos2unix wget teln ...