SOUI 控件系统¶
Warning
The current page still doesn't have a translation for this language.
You can read it through google translate.
SOUI 提供了丰富的控件系统,涵盖从基础控件到高级控件的完整解决方案。
控件分类¶
基础控件¶
- 窗口基类(SWindow)
- 按钮(SButton)
- 文本标签(SStatic)
- 编辑框(SEdit)
- 组合框(SComboBox)
- 复选框(SCheckBox)
- 单选框(SRadioButton)
- 进度条(SProgress)
- 滑块(SSlider)
- 列表控件(SListBox)
- 列表控件(SListCtrl)
- 树控件(STreeCtrl)
- 表头控件(SHeaderCtrl)
- 滚动条(SScrollBar)
- 链接(SLink)
- 图像控件(SImageWnd)
- 分组控件(SGroup)
- Toggle按钮(SToggle)
高级控件¶
- 热键控件(SHotKeyCtrl)
- 日期时间(SDateTime)
- 富文本框(SRichEdit)
- 动画控件(SAnimateImgWnd)
- 日期时间选择器(SDateTimePicker)
- IP地址控件(SIPAddressCtrl)
容器控件¶
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;
});
}
最佳实践¶
- 控件命名规范
- 使用有意义的名称
- 遵循项目命名规范
-
避免特殊字符
-
布局建议
- 合理使用容器控件
- 注意控件间距
-
考虑界面缩放
-
性能优化
- 避免过深的控件层级
- 合理使用缓存机制
- 注意事件处理效率