当前位置: 首页 > news >正文

godot--自定义边框/选中时样式 StyleBoxTexture

前提知识:

stylebox就像一个贴图,把图案贴到控件是。多个stylebox同时生效的话,那当然也有层级之分,上层覆盖下层(可以设置透明度来显示下层)

关于主题的概念:

godot——主题、Theme、StyleBox-CSDN博客

一、素材与实现效果

下面是我准备的图片,和期望的效果 。目标控件是 itemlist

 

二、实现步骤

1. 添加在 selected focus 状态时的样式,新建 styleboxTexture 

2. 然后载入图片

3. 然后调整Texture Margins (TM) 属性,使箭头图案出现在九宫格的边缘

通常来说,只需设置TMTexture这两个属性就够用了。

下面附上说明图解(不用关注其它属性的改动)

图1

下面是更干净的图,真的只修改了这两个属性

图 2

Tips: 在将 stylebox 贴到 item 上时  1379 号格子不会被拉伸;号格子会被完全拉伸;28 号格子只会被水平拉伸;46 号格子只会被垂直拉伸。

三、一些会遇到的坑

下面的回答,为了方便理解,有一些细节方面的问题。相信在实践过程中会自行克服。

Q1.在预览页面中,我的图标还是变形了呀。就像图2中所示。

A1. 不用管它,只要保证图标在边框内部即可。因为最后效果是要根据你的实际itemlist控件的item大小来定的。

Q2. 我如Q1所说,保证了图标在边框内部,但实际效果还是被拉长变形了呀,达不到目标效果。

A2. 这是因为 itemlist 中的 item 的行高只有 10px ,而图案的高度有 20px 。为了把九宫格stylebox贴到item上,只能把它压扁了。想要解决也很简单:1. 把图案等比缩小到高度只有10px以下  2. 增大item的行高到20px以上。

Q3. 可以讲讲你 图1 中的预览效果里,为什么有两个箭头图案吗。

A3. 这是 Axis Stretch 属性在作怪。Axis Stretch 规定了当尺寸不匹配时,应该怎么做。像Q2中提到的那种情况,处于6号格子的图案的高度,与item的高度不一致,根据stretch模式,他就被压缩了。  还有一种Tile模式,即平铺模式。该模式下,若item高度小于图案高度,则会把图案“截断”(如0.8个箭头);反之,则会把图案复制一份并平铺(如2.4个箭头)


http://www.mrgr.cn/news/68463.html

相关文章:

  • ajax关于axios库的运用小案例
  • 基于MATLAB的人声音特征的识别和控制设计
  • Spring Boot——日志介绍和配置
  • 大模型系列——LLAMA-O1 复刻代码解读
  • Linux驱动开发——零散知识分享
  • SQL server增删改查语句和实例
  • 项目管理必备的5款项目管理软件
  • 海南华志亿星电子商务有限公司赋能抖音商家成长
  • 一款绘制3D架构图的在线神器,iCraft Editor
  • redis 原理篇 21 网络模型 IO多路复用 poll
  • 探索呼叫中心的奥秘:从基础到前沿进展
  • redis 原理篇 25 网络模型 信号驱动IO 及 异步IO
  • wordpress搬家迁移后怎么修改数据库用户名
  • TEMU测评:在挑战与机遇中寻求突破
  • 2024 信友队 noip 冲刺 10.8
  • Instagram 青少年账户:安全新升级
  • 第七部分:1. STM32之ADC实验--单通道实验(滑动变阻器调节电压)
  • ChronoUnit.DAYS.between()计算两个日期或时间之间的天数差
  • 【热插拔冗余电源】
  • LeetCode题练习与总结:打乱数组--384
  • JAVA-05-数组和数组列表
  • 数据库交互的本地项目:后台管理系统
  • 数组类算法【leetcode】
  • 《XGBoost算法的原理推导》12-22计算信息增益(Gain)的公式 公式解析
  • 【AI技术】PaddleSpeech
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(1)