先看一个常用的图,如下:

左边是导航栏,右边是信息区。

中间可以自由拉伸。

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-分隔条的更多相关文章

  1. Duilib教程-控件练习

    一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为 ...

  2. DevExpress的分隔条控件SplitterControl的使用

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  3. Qt代码创建分隔条

    我们在使用Qt时,会发现在使用UI界面时可以添加窗口分隔条,但我们使用纯代码时却没有分隔条的类函数.这时候我们就需要手动添加,添加方式和Qt自定义标签按钮一样,下面我直接写代码.如果不知道怎么添加的, ...

  4. jQuery - 左右拖动分隔条

    1.实现效果: 2.代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...

  5. Duilib教程-自动布局2

    在上一节中,我简单介绍了控件随父LAYOUT自由移动的设置.在这一节,我将介绍一种常见的情况:嵌入窗口. 在项目中,我们很少会100%的编写一个软件,特别是界面相关的,我们会使用以前已经编写好的窗口, ...

  6. Duilib教程-自动布局1

    我们要实现一个带标题栏和状态栏的程序,同时要支持拉伸,即包括最小化.最大化,图如下: XML: <?xml version="1.0" encoding="utf- ...

  7. YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]

    封面图是作者运行图,我在 ubuntu 环境下只有文字预测结果. Detection Using A Pre-Trained Model 使用训练好的模型来检测物体 运行一下命令来下载和编译模型 gi ...

  8. Duilib教程-HelloDuilib及DuiDesigner的简单使用

    一.HelloDuilib 1. 首先理解DUILIB显示的一个基本流程,如下图: 在Duilib中,WindowImplBase 这个类代表了图中 “CWndClass”. 所以我们需要做的是: 1 ...

  9. Duilib教程-非DUI控件

    DUILIB并不是真正的DUI,至少有部分控件不是完全DUI的.其实包括: 1.EDIT. 它的实现原理是,CEditUI包含一个窗口CEditWnd,流程如下: 1)鼠标单击,创建窗口见 EditU ...

随机推荐

  1. 经常使用的 WEB server

    对于刚開始学习的人来说,或许自己能够写出一些简单的演示样例DEMO,但却纠结于不知道应该怎样才干訪问自己的页面,这里进行了一些简单的WEBserver总结.便于新朋友配置使用 静态HTML页面 对于静 ...

  2. eclipse下的tomcat内存设置大小(转)

    步骤: 1.点击Run 2.选择Run Configurations, 3.系统弹出设置tomcat配置页面,在Argument中末尾添加参数中的VM arguments中追加: -Xms256M - ...

  3. C++从零实现简单深度神经网络(基于OpenCV)

    代码地址如下:http://www.demodashi.com/demo/11138.html 一.准备工作 需要准备什么环境 需要安装有Visual Studio并且配置了OpenCV.能够使用Op ...

  4. ubuntu安装Skype 4.3

    Install Skype 4.3 Step 1: Remove previous version sudo apt-get remove skype skype-bin:i386 skype:i38 ...

  5. mongodb - Replication Set搭建过程

    1.创建目录 mkdir -p /mongodb/data/r1 mkdir -p /mongodb/data/r2 mkdir -p /mongodb/data/r3 mkdir -p /mongo ...

  6. HDOJ 5418 Victor and World 状压DP

    水状压DP Victor and World Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/131072 K (Java ...

  7. 参数数组(params)的用法

    使用参数数组的注意事项: 1. 只能在一维数组上使用params关键字. 2. 不能重载一个只基于params关键字的方法.params关键字不构成方法的签名的一部分. 如: //编译时错误:重复访问 ...

  8. 如何借助Monit搭建服务器监控系统?(1)

    许多Linux管理员依赖一种集中式远程监控系统(比如Nagios或Cacti),检查网络基础设施的健康状况.虽然集中式监控系统为管理员在处理许多主机和设备时简化了工作,但专用的监控设备显然成了单一故障 ...

  9. .htaccess中的apache rewrite规则写法详解

    .htaccess中的apache rewrite写法: 1 RewriteEngine On 2 RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ 3 Rewr ...

  10. eclipse配置代码自动补全auto-completion

    你如果使用的是JAVA EE的模式,就这样配置: 1. Window>Preferences>Java>Editor>Content Assist>Auto Activa ...