duilib仿百度网盘界面

                                  duilib仿百度网盘界面

这一篇我们介绍使用DuiEditor做一个百度网盘的demo界面。

这一个版本中做了重大更新,设计界面使用了窗口分割,分别为设计、代码、上下分割、左右分割。并且设计和代码实现了实时增量更新,以前的版本总是reload、rebuild。喜欢手写的同学有福了。下面的操作,直接输入xml也是一样的。

首先简单分析一下这个界面,这是一个上下布局结构,第一层包括了标题拦、工具栏,第二层为客户区。

1,新建文件,保存为MainFrame.xml,并设置Window大小为1000,700。设置VerticalLayout背景色为白色。

2,选中左边控件树VerticalLayout,依次插入一个HorizontalLayout和TabLayout。顺手给它们取个名字,这只是为了方便我描述,实际应用中根据具体需求决定是否取名。颜色部分,我是开着百度网盘,对照着用拾色器选取的。

3,选中hori_1,插入HorizontalLayout,取名hori_2。 在hori_2中放一个Control,一个Label。Control做图标用,
Label显示百度网盘4个字。增加一个字体,黑体,字体size=20,看起来是比较合适的。

4,选中hori_1,插入HorizontalLayout,取名hori_3。这里要放几个Option切换TabLayout用的。

5,这几个Option可以用Style定义属性。首先菜单编辑 -> Insert Style Node,在属性窗口中设置name=style_option_header,class=Option,点击value右边的小按钮,设置Style属性:width="60" selectedtextcolor="0xFF06A8FF" selectedbordercolor="0xFF06A8FF" group="group_option_header" textcolor="0xFF2D2D2D" bottombordersize="2"。 接着,给刚才添加的5个Option设置style="style_option_header"。通过对比百度网盘界面,选中hori_3,设置属性:inset="0,10,0,10" childpadding="35"。

6,继续往右边走,开始做用户信息部分。选中hori_1,再给它添加一个子控件HorizontalLayout,取名hori_4。看到把左边的Option遮掉了一部分,不用管它,因为等会hori_4需要设置固定宽度。

7,看起来右边剩下这么多控件,只要在hori_4顺势排列过去就行了。中间空格大的地方,用Control占位就行。首先给hori_4设置垂直居中。接着在hori_4中插入一个Control,这个是用户图标,前景图片head_frame.png是一个遮罩层。

8,用户名使用Label,并且设置为自动调整宽度。

9,插入Option做VP钻石图标。

10,插入Control,宽度10。插入Button,这是会员中心按钮。

10,继续插入Control,宽度10。插入2个Button。

12,插入Control做分割符号,然后插入4个按钮,分别为最小化,最大化,恢复大小,关闭。

13,调整hori_4,宽度:width="354" 子控件间距:childpadding="7"。预览效果如下。

14,接下来我们用ChildLayout做页面容器,这个类似于Include。在设计器中ChildLayout使用会更方便一点。新建5个文件,分别为ch_1.xml、ch_2.xml、ch_3.xml、ch_4.xml、ch_5.xml。选中tab_1,插入5个ChildLayout。我的网盘、传输列表、好友分享、功能宝箱、今日热榜,这5个Option设置属性:bindtablayoutname="tab_1",bindtabindex="x"。x分别为0,1,2,3,4,5。

15,接下来开始编辑ch_1.xml。首先把设计器自动创建的VerticalLayout,在代码编辑中改成HorizontalLayout,取名为h_1,不可与MainFrame.xml中的控件重名,不同文件重名设计器无法提示错误。背景色为白色,适当调整Window的size。

16,h_1中放入两个VerticalLayout。

17,左边的pane按钮全部用Option。先插入第一个Option,最近使用。

18,依次放入其他Option。这几个Option风格一致,可以把几个公用的属性抽出来,定义成Style。

19,下面是广告图片和进度条。先放入一个Control占位。接着插入VerticalLayout作为广告图片的区域,里面再放入一个float属性的Button。

20,左下角的网盘容量部分。

21,现在看起来是有点丑的,想办法调整一下,也就是设置边距。设置v_1的inset="0,0,1,10",广告图片再嵌套一个VerticalLayout,外层的inset="5,0,5,0"。网盘容量的VerticalLayout也要设置左右边距。

22,左边拦最终效果。

23,未完待续。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
nsis是一款基于脚本的安装制作工具,而duilib是一款界面库,用于开发Windows桌面应用程序的用户界面。在nsis中使用duilib自定义界面非常简单。 首先,我们需要下载并安装duilib,然后在nsis的脚本中引入duilib的库文件和头文件。我们可以使用duilib提供的许多控件和样式,也可以根据需要自定义界面。 在nsis脚本中,使用duilib的关键是通过调用duilib提供的函数来创建和管理界面控件,比如按钮、文本框、标签等。我们可以设置控件的属性,如位置、大小、背景色等,并添加事件处理函数。 例如,我们可以通过以下代码创建一个窗口,并在窗口中添加一个按钮: ``` !include "MUI2.nsh" !define MUI_PAGE_CUSTOMFUNCTION_SHOW customPageCreate !insertmacro MUI_PAGE_CUSTOM nsDialogsPage nsDialogsPageLeave var hMainWnd Function customPageCreate nsDialogs::Create 1018 Pop $hMainWnd ${NSD_CreateButton} 0 0 100% 100% "点击我!" Pop $0 ${NSD_OnClick} $0 buttonClicked nsDialogs::Show FunctionEnd Function buttonClicked MessageBox MB_OK "按钮被点击了!" FunctionEnd ``` 上述代码中,我们首先使用`nsDialogs::Create`函数创建了一个窗口,并将其句柄保存在变量`$hMainWnd`中。然后,使用`NSD_CreateButton`函数创建了一个按钮,并将其句柄保存在变量$0中。接下来,我们使用`${NSD_OnClick}`函数将按钮和一个事件处理函数`buttonClicked`关联起来。最后,使用`nsDialogs::Show`函数显示窗口。 当按钮被点击时,事件处理函数`buttonClicked`会被调用,弹出一个消息框显示提示信息。 总结而言,使用nsis和duilib可以轻松地自定义界面。我们可以利用duilib提供的函数和样式,创建各种控件,并通过事件处理函数来实现各种界面交互逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值