使用的网易版本的duilib:

https://github.com/netease-im/NIM_Duilib_Framework

重写demo中basic.xml页面的布局,熟悉布局语法,类似于html语言,这里模仿百度网盘的UI:

<?xml version="1.0" encoding="UTF-8"?>
<Window size="662,442" caption="0,0,0,35">
<VBox><VBox bkcolor="bk_wnd_darkcolor"><HBox width="stretch" height="35" bkcolor=""><Control /><Button class="btn_wnd_min" name="minbtn" margin="4,6,0,0"/><Box width="21" margin="4,6,0,0"><Button class="btn_wnd_max" name="maxbtn"/><Button class="btn_wnd_restore" name="restorebtn" visible="false"/></Box><Button class="btn_wnd_close" name="closebtn" margin="4,6,8,0"/></HBox><HBox width="stretch" height = "60"><Control /><Label bkimage = "logo.png"/><Control /></HBox><HBox width="stretch" bkcolor="white"><Control width="70"/><VBox valign="center" halign="center"><Control height = "40"/><Label name="tooltip" text="扫一扫登录"/><Control height = "20"/><Label name="tooltip" text="使用百度APP扫码登录" normaltextcolor="blue"/><Control height = "20"/><Label bkimage = "QrCode.png" /><Control height = "20"/><Button text ="刷新二维码" name = "refresh_code" height = "30" width = "100" bordercolor="blue" bordersize="1" normaltextcolor="blue"/></VBox><Control width = "30"/><VBox valign="center" halign="center"><Control height = "40"/><HBox width="stretch" bkcolor="white"><Label  text="账号密码登录"/><Control width = "30"/><Label  text="短信快捷登录>" normaltextcolor="blue" /></HBox><RichEdit name="name" multiline="false" bordersize="1" bordercolor="blue" height = "30" width = "220"autohscroll="true"/><Control height = "10"/><RichEdit name="password" multiline="false" bordersize="1" bordercolor="blue" height = "30" width = "220" autohscroll="true" password="true"/><Control height = "10"/><HBox width="stretch" bkcolor="white"><CheckBox /><Label  text="记住密码" /><Control width = "10"/><CheckBox /><Label  text="自动登录" /></HBox><Button text ="登录" name = "login" height = "30" width = "220" bkcolor="blue" normaltextcolor="white"/><Control height = "10"/><Label  text="注册账号" normaltextcolor="blue"/><Control /></VBox> <Control width="50"/></HBox></VBox></VBox></Window>

通过实现GetSkinFile接口告诉render去渲染basic.xml页面:

std::wstring BasicForm::GetSkinFile()
{return L"basic.xml";
}

在之前xml中定义的登录button名字为login,代码中通过名字找到对象,然后绑定按钮事件:

void BasicForm::InitWindow()
{this->SetShadowAttached(true);/* Show settings menu */ui::Button* msg = dynamic_cast<ui::Button*>(FindControl(L"login"));msg->AttachClick([this](ui::EventArgs* args) {ui::RichEdit* edit_name = dynamic_cast<ui::RichEdit*>(FindControl(L"name"));ui::RichEdit* edit_password = dynamic_cast<ui::RichEdit*>(FindControl(L"password"));auto str_name = edit_name->GetText();auto str_pass = edit_password->GetText();if (str_name == str_pass){MessageBoxA(0, "ok", "", 0);}return true;});
}

最后实现的效果:

duilib基本布局学习(模仿百度网盘)及绑定按钮事件相关推荐

  1. 百度网盘不能绑定QQ

    一定要等!!!进度条!! 等全部加载完再点就可以了. 不然的话点关联账号的话会直接跳回个人信息页面. over. 百度账号(百度网盘)绑定QQ账号的页面为什么打不开 总会跳转到个人信息界面,和没点一样 ...

  2. 大文件下载断点续传后台功能,模仿百度网盘下载功能

    最近项目遇到断点续传下载大文件的需求,网上百度了一下,找到了解决方式,感谢大帝的无私奉献. 为了将网盘下载的效果模仿的更真实,特将原作者的代码完善,本着为小白省下完善代码的时间考虑,写了这篇文章. 原 ...

  3. HTML零基础入门学习笔记提供网盘

    HTML学习笔记 百度网盘链接:https://pan.baidu.com/s/1__O4dIxmKMIXPsx5OKb8aw 提取码:fmbv HYML(可在W3School查阅文档) 加粗:< ...

  4. 自己动手用Springboot实现仿百度网盘

    项目编号:BS-PT-032 本项目基于Springboot开发实现,前端采用BootStrap开发实现,系统功能完整,交互性好,模仿百度网盘实现相关功能,比较适合做毕业设计使用,创意性强. 开发工具 ...

  5. 基于Springboot实现仿百度网盘开发

    项目编号:BS-PT-032 本项目基于Springboot开发实现,前端采用BootStrap开发实现,系统功能完整,交互性好,模仿百度网盘实现相关功能,比较适合做毕业设计使用,创意性强. 开发工具 ...

  6. android安卓开发入门视频教程资料百度网盘下载

    android安卓开发入门视频教程资料讲解安卓核心基础,包含视频+笔记,适合新手入门学习. 百度网盘:https://pan.baidu.com/s/1uciMAAa97nm5RSLILtdPdg&a ...

  7. linux环境下,模拟百度网盘上传、下载文件

    目录 1.题目 2.运行截图 3.总体设计 4.详细设计 5.源码 5.1服务端 5.2客户端 1.题目 1)模仿百度网盘实现一个文件上传.下载.浏览的终端网盘; 2)能够实现文件和目录的存储; 3) ...

  8. duilib实战1-模仿百度网盘登录界面

    侵权删,未经允许禁止转载!仅供学习使用! 前言:     刚上手duilib,还不太熟悉,而且没有官方文档,所以写几个实战项目来学习并巩固一下. 使用或实现的部分技术细节:     1.主窗体的边框 ...

  9. duilib仿百度网盘界面

    duilib仿百度网盘界面 这一篇我们介绍使用DuiEditor做一个百度网盘的demo界面. 这一个版本中做了重大更新,设计界面使用了窗口分割,分别为设计.代码.上下分割.左右分割.并且设计和代码实 ...

最新文章

  1. 深度学习多框架多平台推理引擎工具
  2. SimpleDraw-Windows Phone7上的应用
  3. Luogu T9376 区间GCD
  4. 练习:每一分钟产生一个文件,保存本分钟内所有数字之和。
  5. 【android】getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
  6. MM(Majorize-Minimization, Minorize-Maximization)优化方法
  7. 如何在WINCE中添加WebServer组件
  8. scanf()的使用
  9. Day Tips:关于搜索小问题
  10. html点击计数器的实现,点击计数器_Servlet 教程_w3cschool
  11. C/C++多种方法获取文件大小(转)
  12. Go 语言为什么能成功?
  13. digester java_Java XML解析之Digester的使用
  14. 波士顿大学计算机科学与技术专业,BU波士顿大学计算机信息系统硕士Master of Science in Computer Information Systems...
  15. shell编程之正则表达式与文本处理器
  16. Rocky Linux Yum源替换位上海交大镜像站点
  17. 云脉OCR文档管理软件档案加工管理必备
  18. Latex 安装及学习教程
  19. MATLAB fprintf 函数输出希腊字母/特殊字符
  20. 自动驾驶入门(六):反向传播及链式法则

热门文章

  1. CUDA:根据本地电脑的NVIDIA显卡驱动版本去正确匹配待安装的CUDA版本之详细攻略
  2. 成功解决ValueError: Cannot feed value of shape (1, 10, 4) for Tensor Placeholder:0 , which has shape
  3. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
  4. NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量
  5. ML之Clustering之H-clustering:Hierarchical clustering算法相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略
  6. CUMCM:05B  DVD在线租赁
  7. DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界
  8. MAT之PLS:利用PLS(两个主成分的贡献率就可达100%)提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》
  9. Laravel中一些要记住 的写法
  10. 阿里云搭建git mac客户端 2个git账号