找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 96|回复: 1

SOUI编辑器UiEditor如何实现预览自定义控件?

[复制链接]
  • TA的每日心情
    开心
    2026-4-12 21:41
  • 签到天数: 78 天

    [LV.6]常住居民II

    119

    主题

    17

    回帖

    2439

    积分

    管理员

    积分
    2439
    发表于 2026-3-7 11:46:26 | 显示全部楼层 |阅读模式
    尽管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

    2026-03-07_113600.png
    1. #include <souistd.h>
    2. #include "../include/plugin-i.h"
    3. #include <SCtrlsRegister.h>
    4. SNSBEGIN

    5. SOUI_COM_C BOOL SOUI_COM_API RegisterExCtrls(SApplication *pApp)
    6. {
    7. <font color="#ff0000">    SCtrlsRegister::RegisterCtrls(pApp);</font>
    8.     return TRUE;
    9. }

    10. SNSEND
    复制代码
    注意上面红色的那行代码,这里是注册控件的地方。

    首先先将自己扩展的控件放在soui4\controls.extend这里,并在ExtendCtrls项目中添加并确保编译通过。
    2026-03-07_114006.png

    然后在default项目中的SCtrlsRegister.cpp中添加注册代码:theApp->RegisterWindowClass<SRadioBtn>();
    2026-03-07_114229.png

    代码添加后,编译SOUI即可。再打开uieditor.exe,即可实现预览自定义控件了。

  • TA的每日心情

    2024-7-16 14:42
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    0

    主题

    9

    回帖

    215

    积分

    版主

    积分
    215
    发表于 2026-3-7 15:53:14 | 显示全部楼层
    这个default模块不是让你来改的. 是让你参考default创建自己的扩展控件的注册插件.
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2026-4-21 20:34 , Processed in 0.080567 second(s), 24 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表