|
尽管SOUI已经内置了大部分常用的控件,很显然内置控件很难满足各种应用的形式各异的需求。 因此只有提供足够的扩展性才能满足真实应用场景。 除了将系统尽可能的组件化外,SOUI在控件自绘(SWindow)及绘图对象(ISkinObj)两个方面提供用户扩展。
第十篇:扩展SOUI的控件及绘图对象(ISkinObj)
控件扩展后,如何预览呢?若你的想象力足够丰富,对于SOUI的理解很深,不使用uieditor,纯靠手写xml来想法也是可行的,但这是大神的能力,普通开发者还是更愿意能使用uieditor来处理xml并预览效果。
那么自定义的控件如何实现在uieditor中预览自己扩展的控件呢?下面我详细说明一下。
首先要学会SOUI的编译,不会的可以参考以下文章
SOUI5编译过程记录
http://43.139.249.95:9999/forum.php?mod=viewthread&tid=64
(出处: SOUI官方论坛)
要支持自定义控件的预览,需要使用动态库方式来编译Uieditor,所以下面Com_LIB和CORE_LIB这两处不要勾选。

在Uieditor项目中,打开exctrls.cpp
- #include <souistd.h>
- #include "../include/plugin-i.h"
- #include <SCtrlsRegister.h>
- SNSBEGIN
- SOUI_COM_C BOOL SOUI_COM_API RegisterExCtrls(SApplication *pApp)
- {
- <font color="#ff0000"> SCtrlsRegister::RegisterCtrls(pApp);</font>
- return TRUE;
- }
- SNSEND
复制代码 注意上面红色的那行代码,这里是注册控件的地方。
首先先将自己扩展的控件放在soui4\controls.extend这里,并在ExtendCtrls项目中添加并确保编译通过。
然后在default项目中的SCtrlsRegister.cpp中添加注册代码:theApp->RegisterWindowClass<SRadioBtn>();
代码添加后,编译SOUI即可。再打开uieditor.exe,即可实现预览自定义控件了。
|