摘要:
无论内置控件多么丰富,也不可能满足用户所有需求。总有时候用户需要自己扩展控件。 soui4js推荐使用C++来扩展控件,然后通过实现一个js模块来提供js使用。 扩展控件通常涉及到图形上下文的频繁交互,如果使用js来实现,效率上会大打折扣。使用C++,没了C++和js的相互调用。使用起来就和C++版 阅读全文
摘要:
soui4js基于soui4设计实现。 首先我们看一下soui4中如何定义一个窗口类。 soui4最基本的窗口类是SHostWnd和SHostDialog,它需要一个布局xml。 假定布局xml在资源包中的位置为:layout:maindlg。 那么soui4中定义一个窗口可以是下面的代码(为了演示 阅读全文
摘要:
首先需要明确:JS代码本身不具备直接调用系统API的能力,JS代码能调用什么功能,都依赖于其它扩展模块提供了什么样的接口。 soui4js模块将soui的界面能力作为一个js模块导出到了js中,使得js可以和C++一样操作GUI。 但是操作GUI只是一个客户端APP的一个需求。一个产品可能会有各种需 阅读全文
摘要:
开始 假定您使用向导在d:\jsdemo目录创建一个工程,您也已经安装好了vscode, 那么您应该可以看到下面的界面效果: 工程生成后,主要包含一个soui资源包及一个main.js 要运行这个程序,您需要给vscode安装一个插件:quickjs-debug 由于向导已经自动配置了一个launc 阅读全文
摘要:
源代码:https://github.com/soui4js/soui4js soui4js是soui4+quickjs的结合体。 soui4是一套c++ directui客户端开发框架,soui4js则将soui4的开发语言从C++迁移到了js。 可能有人要问:为什么要使用js来开发? 使用js开 阅读全文
摘要:
很多客户端产品有视频渲染需求。视频渲染有软件渲染和硬件渲染两种方案。 软件渲染一般来说需要将常见的yuv视频流转换成rgb/rgba视频流,再通过GDI绘制到窗口上。软件渲染的优势在于可以方便的和客户端界面做融合,达到更好的界面效果,比如通过alphablend等API实现前景,背景的混合。 然后软 阅读全文
摘要:
SOUI3 Editor发布及使用说明 阅读全文
摘要:
天喻软件数据安全平台 达富易国际期货资产管理系统 www.dfyruanjian.com, 全部使用的SOUI原生界面,不是内嵌网页。 神速加速器 一款网游加速器,下载:http://js.ispeed.cn/downloadPage.html 一款上位机界面,行业软件,不提供下载 : 光速搜索:自 阅读全文
摘要:
和手机屏幕一样,高分屏在PC上使用越来越多。传统的桌面程序都是像素为单位进行UI布局,而且是适配传统的96dpi的显示器的。这就导致这些程序在高分屏上显示很小,用户用起来很难受。 虽然windows系统提供了桌面程序自动放大功能,但这个放大效果是以牺牲显示效果为代价的,一个在普屏上显示很好的软件到了 阅读全文
摘要:
感谢网友"指尖"为SOUI开发的UiEditor, 目前该UI编辑器已经基本可用, 源代码在soui svn demos\uieditor. 下面是"指尖"提供的GIF动画教程. 大家快来膜拜"指尖", :) 阅读全文
摘要:
模块结构图:SOUI框架图: 阅读全文
摘要:
前言在Windows平台上开发客户端产品是一个非常痛苦的过程,特别是还要用C++的时候。尽管很多语言很多方法都可以开发Windows桌面程序,目前国内流行的客户端产品都是C++开发的,比如QQ,YY语音,迅雷等。快速,稳定是我认为的应用软件开发框架最基本的要求,对于UI还有两个要求就是界面美观,配置... 阅读全文
摘要:
使用SOUI开发客户端UI程序,通常也推荐使用XML代码来创建窗口,这样创建的窗口使用方便,当窗口大小改变时,内部的子窗口也更容易协同变化。但是最近不断有网友咨询如何使用代码来创建SOUI子窗口,特此在这里统一解答。要回答这个问题,首先要了解SOUI窗口创建及布局的流程。先从swnd.cpp里抄一段... 阅读全文
摘要:
使用SOUI开发的应用UI展示,欢迎使用SOUI的朋友提供资源:setoutsoft#qq.com #->@
阅读全文
摘要:
STreeView控件是一个基于虚表技术实现的高性能树形控件。 和STreeCtrl这种传统的树形控件将数据和控件固定在一起不同,STreeView数据和控件分离,使用一个adapter进行连接。 用过soui的朋友应该对soui提供的SListView很熟悉,SListView里可以轻松实现超大数 阅读全文
摘要:
SOUI的布局XML文件保存布局必须的信息。特定场合中,用户可能会需要在布局中指定业务需要处理的属性。 比如启程输入法的皮肤。有的皮肤支持高分屏,有的皮肤不支持。对于这个场景,比较理想的方案是直接在皮肤的布局文件中指定当前皮肤是否支持高分屏。 程序解析到这个自定义属性再决定后续的逻辑。 下面是启程输 阅读全文
摘要:
SOUI的界面布局使用XML来布局,在XML配置的属性值会通过SObject::SetAttribute(name, value)的方式交给SObject处理。 SWindow是SOUI的界面元素对象,继承自SObject,同样也是通过SetAttribute获取XML中配置的属性。 虽然SObje 阅读全文
摘要:
一直以前SOUI中引用资源都是通过uires.idx中定义资源类型及路径,比如: <?xml version="1.0" encoding="utf-8"?> <resource> <UIDEF> <file name="xml_init" path="uidef\init.xml" /> </UI 阅读全文
摘要:
在SOUI4中工作线程如果与UI线程交互 很多时候程序的耗时过程需要在工作线程执行,执行过程中可能需要通过UI线程来展示运行状态及结果,这就涉及到工作线程与UI线程交互的问题。 SOUI的UI框架本身不是线程安全的,如果在工作线程直接操作UI元素,运气好就是数据不正常,运气坏一点就是程序崩溃。因此正 阅读全文