SoUI 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
SoUI 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
开发语言 C/C++
操作系统 Windows
软件类型 开源软件
所属分类 程序开发UI组件库
开发厂商
地区 国产
提 交 者 lanybass
适用人群 未知
收录时间 2014-09-23

软件简介

SOUI是什么?SOUI是一个C++ DirectUI库。

虽然DirectUI不是什么新技术,但是要把UI做好,DirectUI确实是目前为止最有效的解决方案。

SOUI不是一个新项目,它是基于作者这前开发的DuiEngine再经过为期近半年的重构后完成的版本,(DuiEngine是一个基于原金山的Bkwin重构的UI库,经过两年的不断更新,已经相对稳定,并且已经在多个有大量用户的客户端产品中使用,如多玩魔盒2.0等)

鉴于原有框架的局限,为了更好的满足简化UI开发的目的,作者又重新开发了这套SOUI。
SOUI相对于DuiEngine的改进

做SOUI有几个核心需求:
1、功能模块化:特别是渲染部分要让用户可以根据需要选择适合的模块,如GDI,GDI+,SKIA。
2、性能优化
3、简化XML配置
4、删除原有项目中为了版本兼容而遗留的垃圾代码
5、优化项目管理
6、增加代码注释
同时新版本也增加了一些新的特性:
1、新增多语言翻译支持。
2、程序资源提供模块支持多份,以便为从脚本创建UI提供更好的支持。

3、完善LUA脚本模块。

(编者注:此库是2014年中才开发完成的,svn近期都有在更新,所以不用担心它是老掉牙的东西。而且是基于一个稳定的库改进而来,所以也不要以为它不成熟。强烈推荐哦)

Demo效果:

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (4)

加载中
打分: 力荐
最好用的UI引擎。
2018/11/13 10:17
回复
举报
打分: 力荐
看了下,非常 不错啊,支持 顶顶顶 !!!
2018/02/24 17:54
回复
举报
打分: 力荐
挺好的准备下了学习下
2017/10/25 09:44
回复
举报
setoutsoft软件作者
打分: 力荐
2017年,SOUI实现了3个重新更新: 1 支持线性布局 2 内核实现支持动态多语言切换. 3 支持高分屏显示. github: https://www.github.com/soui2
2017/06/09 10:46
回复
举报
更多评论
暂无内容
发表了博客
2019/03/14 10:16

在SOUI中使用布局模板

概要 注意:布局模板是SOUI 2.8.0.4 新增加的功能。之前版本不支持。 SOUI的listview等一系统控件支持通过模板来创建列表项,这里要说的模板不是指listview中的使用的列表项模板。 对于比较大的项目,在页面布局中可能会出现重复的布局结构,只是部分属性不一样。对于完全相同的布局,soui一直支持使用include属性来重复...

0
0
发表了博客
2019/10/17 18:06

SOUI中对象的生命周期管理

C++程序员最难的一环就是处理内存泄漏。 很多情况下,一个对象在一个模块里分配了内存,忘记了释放,或者在另一个模块里释放都会导致内存相关的问题。 SOUI中大部分暴露在应用层的对象都使用类似COM的引用计数来管理对象的生命周期,包含SWindow, ISkin, EventArg, SStringT, IRenderTarget, IBitmap, IAdapter以及各种扩...

0
0
发表于大前端专区
2015/08/12 22:59

SOUI 多线程界面更新问题

soui document: http://www.cnblogs.com/setoutsoft/ soui code site: http://code.taobao.org/p/soui2/src/ PS: 对于一个没有接触过windows 编程的人来说,这个东东确实比MFC简单了很多

0
5
发表了博客
2015/12/30 19:27

SoUI笔记

使用SoUI开发界面程序时,经常碰到一些问题,找了许久才找到原因,因此将这些记录下来,当作备忘。

0
3
发表了博客
2019/08/04 17:29

SOUI3.0仿Android插值动画使用方法

在Android系统中,有插值动画,数值动画,属性动画,帧动画。 帧动画,在SOUI里可以通过AnimateImg这个控件来实现,其它几种动画3.0之前不支持,需要类似动画效果,只能自己通过定时器去实现,实现成本比较高。 SOUI3.0增加了插值动画和数值动画支持,属性动画可以通过数值动画来实现,因此没有专门移植。 这一讲我先讲插...

0
0
发表了博客
2019/08/04 16:10

全开源C++ DirectUI 界面库SOUI 3.0更新

从2019.5.22开始,SOUI版本号更新到2.9.0.2,后面开始准备3.0的开发,历时近3个月,现在3.0的主要工作基本完成。 为了便于大家区别2.x,3.0启用了新的代码仓库:https://github.com/soui3/soui 3.0相比2.x有以下代码的更新: 1、规范代码中使用的类名,2.x中由于历史原因有一些类名一直是Cxxx这样的以C开头的类名,新版本...

0
0
发表了博客
2019/03/30 14:25

C++绑定私有函数

在C++开发中,有很多时间会使用到回调函数,每次函数都要求是全局函数(类的静态函数也可以)。最近由于工作的原因,接触到SOUI界面库的自定义事件,他提供的注册机制非常特别,可绑定类的私有成员方法。理解他的实现后,写下这篇绑定私有函数的demo,以作记录。 class TestA; class TestB { Publib: typedef int ...

0
0
发表了博客
2019/08/04 22:18

在SOUI3.0中使用数值动画

上一篇介绍了插值动画,插值动画是直接作用于窗口对象的。 数值动画则可以作用于任何对象。 SOUI内置了3种数值类型的动画,分别是SIntAnimator, SFloatAnimator, SColorAnimator,分别对应int, float, COLOR这3种数据类型,当然用户也可以扩展支持其它数据类型,不过基本上这3种就足够了。 下面以demo中使用的ColorAnim...

0
0
发表了博客
05/27 10:06

为GDI函数增加透明度处理

用户对客户端的UI的要求越来越高,采用alpha通道对前景背景做混合是提高UI质量的重要手段。 UI开发离不开GDI,然后要用传统的GDI函数来处理alpha通道通常是一个恶梦:虽然有AlphaBlend这个API可以做alpha混合,但是前提必须是操作的DC中的位图有alpha通道的数据,问题的关键在于GDI函数在操作的地方会把原来的alpha通道清...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
4 评论
125 收藏
分享
返回顶部
顶部