0 0 0

关于JOUI

1月前 210

【JOUI】全称Jelly Orange UI 橙色果冻界面

JOUI 包含了一整套桌面软件的开发部件,与其说这是一个界面库,不如说它是一个开发框架。从原有 Duilib 基础上拓展/重构了一些新的能力,并整合了 Google base 基础类库(线程、内存、闭包等)。您完全可以直接使用这个框架来开发任何你想要的桌面应用。

【JOUI的历史】

十年前还流行各大界面库的时候就喜欢捣鼓音乐播放器,那时候就一个执念 就是做出想要的界面 华丽的效果~由于不懂自绘 期间不断找界面库;不断换界面库,最早发布的一个版本在2013年....由于各种界面库的兴衰起伏太大 开始自己构造一款属于自己的界面库之旅~期间发布过几个版本 其中流传的有【VJUI】.....由于底层缺陷由此逐步升级淘汰 完成了JOUI!

 

整体组件架构

JOUI框架中提供了多线程模型、高精度定时器、基本的 xml 解析、zip 支持等功能;封装了一层渲染接口和全局样式资源的统一管理;并且对 DPI 适配、多语言、等功能增加了支持;在上层提供了丰富的控件。

线程模型和消息队列

开发框架中集成了 Chromium 中 base 库的线程模型和消息队列,base 中包含了多种消息循环、异步操作接口。

base 线程消息循环

在框架中的 UI 消息循环、工作线程都完全依托 base 的线程模型。使用 base 的异步通信能力,我们可以将耗时的工作(如资源解析)放到辅助线程来减轻 UI 线程的压力。

base异步通信


同时,JOUI中的各种基础组件,都已经继承了 base 中的生命周期检测能力,每个任务在执行时都会先检查与之绑定的对象是否存活,确保多线程操作不会因野指针而导致崩溃。实际项目开发中,使用base的线程模型,我们可以非常简单做到 UI 线程、数据库线程、网络线程、其他工作线程之间的通信与交互,有效提升开发速度。

功能特点

JOUI框架提供了更加完整和丰富的控件功能,以满足不同真实业务场景的需求,同时也会不定时扩展更新:

  • 【1】丰富的控件(29+)、简易的布局(6种常用)支持
  • 【2】灵活的控件组合、事件处理方式
  • 【3】模块化支持
  • 【4】渲染列队支持
  • 【5】异形、模态、分层窗体支持
  • 【6】DPI 适配支持(模拟调试开发等)
  • 【7】Unicode多国语言支持
  • 【8】通用样式支持
  • 【9】虚表控件支持
  • 【10】实用的多线程支持
  • 【11】miniblink支持
  • 【12】控件缓动支持(支持34种缓动特效
  • 【13】编解码图片支持、也可以自定义图片解码插件图像支持、图像处理(最高支持每通道32位)包括:BMP v5, GIF 89a/m, ICO, JPEG, PNG 1.2, TIFF 6.0, webp,Windows Media Photo.
  • 【14】GIF 动画支持(PNG、JPEG、BMP、GIF、DDS、ICON
  • 【15】ffmpeg基础渲染支持
  • 【16】微软RichEdit原生支持
  • 【17】SVG解析支持
  • 【18】D2D渲染加速支持
  • 【19】组件扩展、派生、自定义绘制等支持
  • 【20】高斯模糊、蒙板、控件模糊等支持
  • 【21】控件旋转、矩阵等支持
  • 【22】强大的文字渲染、emoji、字体图标支持
  • 【23】多字体动态加载支持
  • 【24】分布式主题包支持
  • 【25】自定义消息事件支持
  • 【26】拖拽、拖放支持
  • 【27】托盘支持
  • 【28】抽象渲染接口(为其他渲染引擎提供支持)

灵活的布局与组合

JOUI中,增加了控件与容器的尺寸自适应功能,免去繁琐的手写尺寸。同时增强了布局能力,搭配控件的一些定位属性,还可以使用少量 xml 代码来完成更加强大的布局效果。

绝对布局

现在的 UI 库中,把布局、容器、控件等逻辑组件拆分开,让不同的布局可以与任意容器进行灵活的组件。并且弱化了容器与控件的区别,基础控件使用模版来编写,上层使用时可以让它继承不同的控件或模版,让控件本身也可以是容器。

 

最低客户端支持

  • Windows 8以及 Windows 7 的平台更新[桌面应用程序]
  • 更多>>关于 Direct2D
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!