Skip to content

XML资源文件定义

Warning

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

You can read it through google translate.

uires.idx 文件

基于SOUI界面库的程序必须包含一个UI资源索引文件(uires.idx)。这是一个标准的XML文件,用于定义和组织应用程序的所有资源。

文件位置

  • 默认位置:uires文件夹下的uires.idx
  • 使用PE资源或ZIP压缩文件时,位置保持不变

基本结构

<?xml version="1.0" encoding="utf-8"?>
<resource>
    <UIDEF>
        <file name="xml_init" path="xml/init.xml" />
    </UIDEF>
    <ICON>
        <file name="LOGO" path="image/img_logo.ico" />
    </ICON>
    <CURSOR>
        <file name="ANI_ARROW" path="image/021.ani" />
        <file name="CUR_TST" path="image/camera_capture.cur"/>
    </CURSOR>
    <LAYOUT>
        <file name="maindlg" path="xml/dlg_main.xml" />
        <file name="menu_test" path="xml/menu_test.xml" />
    </LAYOUT>
    <!-- 其他资源类型 -->
</resource>

资源类型定义

常见资源类型

  1. UIDEF:界面定义
  2. ICON:图标资源
  3. CURSOR:光标资源
  4. LAYOUT:布局文件
  5. IMGX:图片资源
  6. GIF:GIF动画
  7. RTF:富文本
  8. SCRIPT:脚本文件
  9. TRANSLATOR:翻译文件

自定义类型

  • 可以定义任意资源类型
  • 类型名称长度不超过30个字符

资源引用规则

文件元素属性

  1. name:在UI布局XML中引用的标识
  2. path:资源文件的实际存储路径

XML文件定义顺序

  1. 资源引入(uires.idx)

    <资源类型>
        name = 资源自定义名称, path=资源路径
    </资源类型>
    

  2. 全局变量定义(init.xml)

    <变量类型>
        name=变量名称, src=资源类型:资源别名, 控件属性...
    </变量类型>
    

  3. 全局变量使用(如dlg_main.xml)

init.xml 资源文件

文件作用

  • 定义SOUI中使用的全局UI定义
  • 在main函数中被SApplication对象使用

使用方式

// 创建SApplication对象
SApplication *theApp = new SApplication(pRenderFactory, hInstance);
// 加载全局资源描述XML
theApp->Init(_T("xml_init"));

文件结构

<?xml version="1.0" encoding="utf-8"?>
<UIDEF>
    <!-- 默认字体定义 -->
    <font face="微软雅黑" size="18"/>

    <!-- 字符串定义 -->
    <string>
        <ver value="1.0"/>
    </string>

    <!-- 皮肤定义 -->
    <skin>
        <imglist name="skin_page_icons" src="imgx:png_page_icons" states="9"/>
        <!-- 其他皮肤定义 -->
    </skin>

    <!-- 样式定义 -->
    <style>
        <class name="cls_btn_link" cursor="hand" colorHover="#0A84D2"/>
        <!-- 其他样式定义 -->
    </style>

    <!-- 对象属性定义 -->
    <objattr>
        <button class="normalbtn"/>
        <!-- 其他对象属性 -->
    </objattr>
</UIDEF>

最佳实践

  1. 资源组织
  2. 按功能模块组织资源
  3. 使用清晰的命名规则
  4. 保持资源目录结构整洁

  5. 命名规范

  6. 使用有意义的资源名称
  7. 保持命名风格一致
  8. 避免重复的资源名称

  9. 资源管理

  10. 定期清理未使用的资源
  11. 维护资源的版本控制
  12. 注意资源的重用性