• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2021-05-08 13:36 Aet 隐藏边栏 |   抢沙发  18 
文章评分 1 次,平均分 5.0

跨平台

  1. 主要使用c++进行开发
  2. 通过base库和ui库,接管了系统的消息,不直接调用系统API
  3. 使用skia,统一了不同平台的绘制

DUI

  1. DirectUI意为直接在父窗口上绘图,子窗口和子控件不以实际窗口的方式创建,不包含系统窗口句柄
  2. 可以更灵活的组合出各种复杂控件和效果
  3. 更多的使用自绘,界面更酷炫

面向对象

  1. 大量使用设计模式,无处不在的观察者、委托、工厂等模式
  2. 大量使用MVC的界面逻辑分离模式

概念

view

  1. 控件或者容器
  2. 由于dui,他比windows的控件更灵活更高效,而且没有系统窗口句柄

widget

  1. 窗口、句柄封装,不一定有真实的系统窗口句柄

基础控件

Separator

  1. 分割线

Label

  • 单行文字
  • 其他
    • Link 链接(可点击文字)

Button

LabelButton

  • 文字按钮
  • 其他
    • MdTextButton:
    • MenuButton:菜单按钮
    • Checkbox:复选框
    • RadioButton:单选框

ImageButton

  1. 图片按钮

ToggleButton

  1. 开关按钮

TextField

  1. 编辑框

ImageView

  1. 图片

ProgressBar

  1. 进度条

Combobox

  1. 组合框

EditableCombobox

  1. 可编辑组合框

创建控件

父view会将子view保存在children_列表,在析构时自动delete。
部分控件有特定的工厂、原型创建方式。

控件布局

所谓布局,就是告诉告诉别人你自己有多大,你的所有子控件应该在什么位置,有多大。

第一种方法

  1. 通过重载View类的两个函数可以实现目的

第二种方法

  1. 通过设置布局管理器来控制:View::SetLayoutManager
  2. LayoutManager是一个虚基类,一般需要实现两个纯虚函数

chromium的布局管理器

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-20
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享