SOUI总结之皮肤说明

2023-05-16

皮肤说明

说明

框架自带的皮肤都是_skin.sys.XXXX开始,自带的皮肤存放位置trunk\soui-sys-resource\theme_sys_res,图片和名称映射关系可以打开trunk\soui-sys-resource\theme_sys_res.rc2 文件查看。

如何替换通过向导生成的关闭/最小化/最大化按钮图片?

找到在系统图片文件夹(trunk\soui-sys-resource\theme_sys_res)直接把文件替换掉,此方案最简单;

以下步骤是替换完整替换步骤:

uires.idx

<IMGX>

<file name="ID_PNG_WND_CLOSE" path="image\shut.png" />  <!-- name随意 -->

</IMGX>

引入新图片 一般关闭按钮这类图都是三态/四态图片,因此放到IMGX(规范)

 init.xml 构建skin

<skin>

<imglist name="_skin.btn.wnd.close" src="IMGX:ID_PNG_WND_CLOSE" states="3"/>

<!-- 说明: src=标签名:name   此处是标签和name 即步骤I state=图片中状态数  此处是图片包含状态 一般是3(默认,高亮,按下)如果存在4状态那么就是禁用-->

</skin>

修改对应窗口xml文件 此处为dlg_main.xml文件

<root class="cls_dlg_frame" cache="1">

   <caption pos="0,0,-0,30" show="1" font="adding:8">

       ....

       <imgbtn id="1" skin="_skin.sys.btn.close" pos="-45,0" tip="close" animate="1"/>

       <!-- 下面自定义关闭按钮 也就是把 skin名称改成第II中name即可 -->

         <imgbtn id="1" skin="_skin.btn.wnd.close" pos="-45,0" tip="close" animate="1"/>

       ....

      </caption>

....

</root>

以上就是完成步骤,至于替换背景图片也是相同道理 

skin

<button name="win10btn" colorBorder="#ADADAD" colorUp="#E1E1E1" colorDown="#E1E1E1" colorBorderHover="#0078D7" colorUpHover="#E5F1FB" colorDownHover="#E5F1FB" colorBorderPush="#005499" colorUpPush="#CCE4F7" colorDownPush="#CCE4F7" cornerPercent="0.5" />

几种绘图类型

1、imglist

imglist 是一个图片序列对象,可以包含一组小图片,常见的如按钮需要使用的 4 种状态

图。

imglist 包含 4 个属性:

SOUI_ATTRS_BEGIN()

ATTR_CUSTOM(L"src", OnAttrImage)

//skinObj 引用的图片文件定义在 uires.idx 中的 name 属性。

ATTR_INT(L"tile", m_bTile, TRUE)

//绘制是否平铺,0--位伸(默认),其它--平铺

ATTR_INT(L"vertical", m_bVertical, TRUE)

//子图是否垂直排列,0--水平排列(默认), 其它--垂直排列

ATTR_INT(L"states",m_nStates,TRUE)

//子图数量,默认为 1

SOUI_ATTRS_END()

假定上图的图片在 uires.idx 中的定义为:

<imgx>

<file name='btn_next' file='image\btn.next.png'/>

</imgx>

要在 soui 中引用这个图片,需要在 init.xml 的 skins 结节中做如下声明:

<skins>

<imglist name=“skin_btn_next" src="imgx:btn_next" states="4" tile="0"

vertical="0"/>

</skins>

在上面的 skin 定义中,

name 属性告诉系统如何引用定义的 imglist

src 属性定义该 skin 需要使用哪一个图片资源,资源引用格式为 type:name,如上面使用

的 imgx:btn_next,对于图片资源,通常情况下也可以不指定 type,系统会自动在常用的

图片类型下查找,但不建议这样使用。

states 定义图中包含多少个子图。

title 定义图片在放大显示时时平铺还是拉伸,默认为拉伸。

vertical 属性定义图中的子图的排列方式。

在本例子中 tile 和 vertical 属性都可以不指定。

2、imgframe

imgframe 是一个提供九宫格显示的绘图对象,SSkinImgFrame 派生自 SSkinImgList,

因此 imgframe 也拥有 imglist 的全部属性。

此外,imgframe 提供了几个新的属性:

SOUI_ATTRS_BEGIN()

ATTR_INT(L"left", m_rcMargin.left, TRUE)

//九宫格左边距

ATTR_INT(L"top", m_rcMargin.top, TRUE)

//九宫格上边距

ATTR_INT(L"right", m_rcMargin.right, TRUE)

//九宫格右边距

ATTR_INT(L"bottom", m_rcMargin.bottom, TRUE)

//九宫格下边距

ATTR_INT(L"margin-x", m_rcMargin.left=m_rcMargin.right, TRUE)

//九宫格左右边距

ATTR_INT(L"margin-y", m_rcMargin.top=m_rcMargin.bottom, TRUE)

//九宫格上下边距

SOUI_ATTRS_END()

 imgframe 的格式如上图,在 imgframe 中通过 left, top, right, bottom 来定义九宫格。

3、button

button 绘图对象是绘制按钮时使用的,它使用渐变实现绘制按钮的 4 种状态。

包含以下属性:

SOUI_ATTRS_BEGIN()

ATTR_COLOR(L"colorBorder", m_crBorder, TRUE) //边框颜色

ATTR_COLOR(L"colorUp", m_crUp[ST_NORMAL], TRUE) //正常状态渐变

起始颜色

ATTR_COLOR(L"colorDown", m_crDown[ST_NORMAL], TRUE) //正常状态渐

变终止颜色

ATTR_COLOR(L"colorUpHover", m_crUp[ST_HOVER], TRUE) //浮动状态渐

变起始颜色

ATTR_COLOR(L"colorDownHover", m_crDown[ST_HOVER], TRUE) //浮动状态渐

变终止颜色

ATTR_COLOR(L"colorUpPush", m_crUp[ST_PUSHDOWN], TRUE) //下压状态渐

变起始颜色

ATTR_COLOR(L"colorDownPush", m_crDown[ST_PUSHDOWN], TRUE) //下压状态渐

变终止颜色

ATTR_COLOR(L"colorUpDisable", m_crUp[ST_DISABLE], TRUE) //禁用状态渐

变起始颜色

ATTR_COLOR(L"colorDownDisable", m_crDown[ST_DISABLE], TRUE) //禁用状态

渐变终止颜色

SOUI_ATTRS_END()

4、gradation

渐变绘图对象,提供 3 个属性:

SOUI_ATTRS_BEGIN()

ATTR_COLOR(L"colorFrom", m_crFrom, TRUE) //渐变起始颜色

ATTR_COLOR(L"colorTo", m_crTo, TRUE) //渐变终止颜色

ATTR_INT(L"vertical", m_bVert, TRUE) //渐变方向,0--水平(默认), 1--

垂直

SOUI_ATTRS_END()

  1. scrollbar

滚动条皮肤,虽然它派生自 imglist,实际上 imglist 中实现的属性在 scrollbar 中没有意

义,只是为了省点代码。

SOUI_ATTRS_BEGIN()

ATTR_INT(L"margin",m_nMargin,FALSE)

//边缘不拉伸大小

ATTR_INT(L"hasGripper",m_bHasGripper,FALSE)

//滑块上是否有帮手(gripper)

ATTR_INT(L"hasInactive",m_bHasInactive,FALSE)

//是否有禁用态

SOUI_ATTRS_END()

一般的 scrollbar 皮肤资源如下:

 如果没有帮手也没有禁用状态,图片应该是 8*3 的正方形网格。

有帮手则 X 增加一个网格,有禁用状态则 Y 增加一个网格。

6、border

给 menu 用的,以后再介绍。

style

在 style 节点中,定义 UI 布局中 SOUI 窗口对象的属性集合,它们是 SWindow 对象的属

性,所有 SWindow 对象都可以通过 class 属性来引用 style 节点中定义的属性集合。

objattr

控件的默认属性。

SOUI 可以为每一类 UI 控件通过 objattr 来提供一种默认属性集合,以减少在 XML 布局

中的重复定义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SOUI总结之皮肤说明 的相关文章

  • SYN6288中文语音合成 程序

    用到串口2 xff0c 因为串口1的话会影响下载 xff0c 需每次拔插线 include lt STC12C5A60S2 H gt include lt stdio h gt include lt math h gt include lt
  • STC单片机超声波程序

    SR05 xff0c 这款只能用定时器计算 include lt intrins h gt include 34 12864 h 34 include lt stdio h gt sbit RX 61 P1 6 sbit TX 61 P1
  • VTK学习-坐标系统

    写在前面 xff1a 这篇博客简要根据书本内容简要介绍一些VTK中要用到的坐标系统与空间变换 这一部分与计算机图形学结合更加紧密 想起之前也 被迫 研究过一段时间的计算机图形学中三维显示部分 xff0c 现在简单学一学 xff0c 提示一下
  • python出现进程已结束,退出代码为-1066598274 (0xC06D007E)的含义

    python出现进程已结束 xff0c 退出代码为 1066598274 0xC06D007E 的含义为你当前使用的某个包与其他相关的包版本之间发生冲突 解决方法 xff1a 卸载正在使用的当前包与相关包 重新安装一遍即可解决
  • lxc

    LXC为Linux Container的简写 Linux Container容器是一种内核 虚拟化技术 xff0c 可以提供轻量级的虚拟化 xff0c 以便隔离进程和资源 xff0c 而且不需要提供指令解释机制以及全虚拟化的其他复杂性 相当
  • 关于ros2、turtlebot3和nav2的应用总结

    关于ros2 turtlebot3和nav2的应用总结 一 资源简介 1 版本要求 ros2 foxy turtlebot3 waffle nav2 0 4 1 gazebo gazebo ros pkgs 3 5 0 zip 2 资源链接
  • motion_primitive_library导航源码阅读笔记

    一 motion primitive library导航源码阅读笔记 二 路径规划文献 Search based Motion Planning for Quadrotors using Linear Quadratic Minimum T
  • Linux下安装cmake步骤详解(图文)

    1 查看Linux位数 getconf LONG BIT 2 获cmake源码包 这里我先新建一个文件夹来存放cmake mkdir app cd app wget https cmake org files v3 3 cmake 3 3
  • cartographer代码流程整理

    代码解析地址 https zhuanlan zhihu com p 48010119 一 代码目录结构 1 cartographer ros 2 cartographer 二 测试命令 2D xff1a roslaunch cartogra
  • 关于ros2、webots的应用总结

    关于ros2 webots的应用总结 一 资源简介 1 版本要求 ubuntu20 04 1 ros2 foxy 2 资源链接 webots官网 xff1a http www cyberbotics com webots ros2网址 xf
  • 日常使用书签

    1 TensorFlow API 中 NCHW 与 NHWC 的区别 https blog csdn net weixin 41847115 article details 83794551 utm medium 61 distribute
  • 在ubuntu下安装opencv4.5.1详细步骤

    1 到https github com opencv opencv下载opencv4 5 1 xff0c 解压得到opencv master 2 安装依赖包 sudo apt get install build essential cmak
  • 路径规划资料

    1 RRT算法原理图解 https blog csdn net weixin 43465857 article details 96451631 2 最透彻的A 算法详解 https my oschina net u 4847229 blo
  • nav2阅读笔记

    1 机器人起始坐标是在全局地图中 xff0c 目标点也在全局地图中 xff0c 全局路径规划在全局地图完成 机器人的运动控制是在局部地图中完成 xff0c 也就是在车体坐标系下 2 无人机 自动驾驶车辆全局路径规划 局部路径规划都是在全局坐
  • 日常使用标签2

    日常使用标签2 1 CUDA入门教程 https blog csdn net luoganttcc article details 123474189
  • 人工智能概述

    目录 什么是人工智能实现人工智能的方法逻辑编程机器学习深度学习机器学习和深度学习的区别 人工智能的分类如何实现人工智能 什么是人工智能 人工智能 又被称为机器智能 xff0c 是一种综合计算机科学 统计学 语言学等多种学科 xff0c 使机
  • 2019了,转行学编程过时了吗?

    最近 xff0c 我的一篇文章 现在学Java的人都是傻子 引起了一些网友讨论 xff0c 都在说现在学Java过时了 xff0c Java市场趋于饱和了 xff0c 应该弃学Java xff0c xff0c 难道Java编程真的过时了 x
  • 什么是用户态和内核态?用户态和内核态是如何切换的?

    3 什么是用户态和内核态 xff1f 用户态和内核态是操作系统的两种运行状态 xff0c 操作系统主要是为了对访问能力进行限制 xff0c 用户态的权限较低 xff0c 而内核态的权限较高 用户态 xff1a 用户态运行的程序只能受限地访问
  • ubuntu安装Clamav

    一 简介 Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包 主要应用于邮件服务器 xff0c 采用多线程后台操作 xff0c 可以自动升级病毒库 ClamAV是一个在命令行下查毒软件 xff0c 因为它不将杀毒作为主要功

随机推荐

  • 什么是上下文切换?

    上下文切换指的是内核操作系统的核心在CPU上对进程或者线程进行切换 搞清楚上下文切换需要先搞清楚什么是上下文 CPU在开始执行任务时需要先知道从哪里去加载任务 xff0c 从哪里开始执行 xff0c 上下文的作用就是告诉CPU这些 xff0
  • ubuntu16.04下,ROS+PX4+QGC安装

    ubuntu16 04下 xff0c ROS 43 PX4 43 QGC安装 ROS安装 xff1a 第一步 xff1a ROS安装前准备工作 1 在Ubuntu系统上 xff0c 确认git已经安装 span class token fu
  • TokenEndpoint : Handling Null Pointer Exception

    springboot oauth2 0生成token时报错 详细的日志没有打印出来 需要手动配置log 64 Override public void configure AuthorizationServerEndpointsConfig
  • linux(ubuntu)无法连接网络

    提示 xff1a 版本 xff1a ubuntu16 0 4 问题 xff1a 开机没有网络 xff0c 无法连接网络 xff0c 尝试了很多方法最终才可以 首先查看ifconfig 查看网卡信息 ifconfig 查看ip ip a 查看
  • 八皇后问题

    问题描述 在国际象棋中 xff0c 有一个非常强势的棋子 皇后 xff0c 他的走法可以在网上参考一下 xff0c 概括来说就是可以沿着行 列 与对角线平行的线走 而在计算机中有一个关于他的经典问题 xff0c 8皇后 xff0c 就是在8
  • ubuntu18.04.3如何在终端下切换到指定文件夹或根目录

    看到很多的新手 xff0c 不知道如何在终端切换到根目录的 xff0c 或者是指定的目录的 xff0c 下面介绍一下切换的方法 1 先按键盘 ctrl 43 alt 43 t 弹出终端 xff0c 那么你会看到终端上的提示当前目录为 这个就
  • MySql简单查询——单表查询

    一 DDL xff08 Data Definition Language xff09 xff1a 数据定义语言 xff0c 用来定义数据库对象 xff1a 库 表 列等 xff1b 相关字段 xff1a create drop alter
  • linux下可视化git工具git-cola安装与使用(HTTP方式)

    一 git cola为何物 很多小伙伴 xff0c 特别喜欢使用TortoiseGit xff0c 该软件是做什么的 xff0c 就不用多说吧 奈何 xff0c TortoiseGit只有windows版 xff0c 这让在linux上开发
  • 解决ubuntu下应用程序菜单不在程序的左上角

    测试版本 xff1a ubuntu16 04 问题 xff1a 应用程序菜单不在程序的左上角 xff0c 默认放在了桌面顶部的菜单栏上 如下 xff1a 解决办法 xff1a System Settings gt Appearance gt
  • linux下可视化git工具git-cola安装与使用(SSH方式)

    一 git cola为何物 很多小伙伴 xff0c 特别喜欢使用TortoiseGit xff0c 该软件是做什么的 xff0c 就不用多说吧 奈何 xff0c TortoiseGit只有windows版 xff0c 这让在linux上开发
  • CAS实现SSO单点登录原理

    yale cas可以百度一下 xff0c 这是学习cas后的一点总结 xff0c 以备日后使用 xff01 安全性 xff1a 用户只须在cas录入用户名和密码 xff0c 之后通过ticket绑定用户 xff0c 在cas客户端与cas校
  • 五种知网文献免费下载方式

    1 idata中国知网 网址 xff1a idata中国知网 进入系统 xff0c 注册账号 xff0c 登录即可 每天五篇额度 xff0c 基本够用 xff0c 可注册多个账号使用 2 上海研发公共服务平台 网址 xff1a 上海研发公共
  • 【FreeRTOS】二值信号量实现线程的同步

    FreeRTOS 二值信号量实现线程的同步 测试环境如下 stm32L431RCT6 MDK keil5 stm32cube 43 FreeRTOS 一 添加多个任务 1 引脚配置 LED使用的引脚PA8和PB2设置成output 将按键引
  • 暗影精灵2pro安装win10+ubuntu16.10双系统

    暗影精灵2pro预装win10家庭版 xff0c 默认启动win10系统 xff0c 且无法引导其他系统 xff0c 今天我们来解决这个问题 先进入到win10的磁盘管理器服务 xff0c 为ubuntu单独分配磁盘空间 xff0c 让wi
  • 第二十三讲.从HadoopURL中读取数据

    视频 xff1a 美妙人生 Hadoop课程系列之HDFS 手把手教你精通HDFS 美妙人生 Hadoop课程系列之HDFS 手把手教你精通HDFS 视频笔记 从hadoop URL读取数据 static URL setURLStreamH
  • winform窗体

    一 winform介绍 WinForm xff0c 是 Net开发平台中对Windows Form的一种称谓 WinForm是窗体应用程序 xff0c 由若干个窗体应用组成 xff0c 基于C S架构 二 winform的使用 xff08
  • 赋予人工智能记忆的人,带你梳理深度学习核心算法

    新智元翻译 1 来源 xff1a Idsia 作者 xff1a J rgen Schmidhuber 翻译 xff1a 张巨岩 作者介绍 xff1a J rgen Schmidhuber 被称为是赋予人工智能记忆的人 xff0c 递归神经网
  • C++实现贪吃蛇游戏

    注意 xff1a 本代码是在VC 43 43 6 0环境下编译的 xff0c 在其他环境如codeblocks下运行可能会产生意想不到的问题 xff0c 请尽量使用VC xff01 最近由于小编闲着慌 xff0c 捣鼓了一个贪吃蛇游戏 xf
  • Win10正式版19044.2132(KB5020435)来啦!(附完整更新日志)

    微软发布了Win10正式版KB5020435 xff08 操作系统内部版本 19042 2132 19043 2132 和 19044 2132 xff09 xff0c 此次更新主要解决了某些类型的安全套接字层 xff08 SSL xff0
  • SOUI总结之皮肤说明

    皮肤说明 说明 框架自带的皮肤都是 skin sys XXXX开始 xff0c 自带的皮肤存放位置trunk soui sys resource theme sys res xff0c 图片和名称映射关系可以打开trunk soui sys