Skip to content

SOUI 控件系统

Warning

The current page still doesn't have a translation for this language.

You can read it through google translate.

SOUI 提供了丰富的控件系统,涵盖从基础控件到高级控件的完整解决方案。

控件分类

基础控件

高级控件

容器控件

MVC虚表控件

菜单控件

控件特性

通用属性

所有 SOUI 控件都继承自 SWindow,因此共享以下基本属性:

  • 位置(pos):控件在父窗口中的位置
  • 可见性(visible):控件是否可见
  • 禁用状态(enable):控件是否可用
  • 焦点(focusable):是否可以获取焦点
  • 提示文本(tip):鼠标悬停时显示的提示

样式支持

每个控件都支持:

  • 皮肤(skin):外观定制
  • 颜色(color):文本颜色等
  • 字体(font):文字样式
  • 对齐方式(align):内容对齐

事件系统

控件支持丰富的事件:

  • 鼠标事件
  • 键盘事件
  • 焦点事件
  • 自定义事件

使用指南

XML 中使用控件

<window>
    <!-- 按钮示例 -->
    <button name="btnOK" 
            pos="10,10,100,40" 
            text="确定"/>

    <!-- 文本框示例 -->
    <edit name="editName" 
          pos="10,50,200,80" 
          text="请输入"/>
</window>

代码中操作控件

// 查找控件
SButton *pBtn = FindChildByName2<SButton>(L"btnOK");
if(pBtn) {
    // 修改属性
    pBtn->SetWindowText(L"新文本");
    // 绑定事件
    pBtn->GetEventSet()->subscribeEvent(EVT_CMD, 
        [](EventArgs *e)->bool {
            // 处理点击事件
            return true;
        });
}

最佳实践

  1. 控件命名规范
  2. 使用有意义的名称
  3. 遵循项目命名规范
  4. 避免特殊字符

  5. 布局建议

  6. 合理使用容器控件
  7. 注意控件间距
  8. 考虑界面缩放

  9. 性能优化

  10. 避免过深的控件层级
  11. 合理使用缓存机制
  12. 注意事件处理效率

下一步