Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
主题类型变种
设计用户界面时,有时候会想要让某个 Control 节点看起来和 Theme 中定义的一般样式不同。每个控件节点都有主题属性覆盖项,可以让你针对单独的 UI 元素定义不同的样式。
如果你需要在多个控件之间共享同一种自定义外观,这种做法很快就会变得难以管理。试想一下,假如你在整个项目中都用到了灰色、蓝色和红色这三种变体的 Button (按钮)。如果每次在界面里添加一个新按钮时,你都得重新手动设置一遍,那绝对是个非常繁琐的任务。
为了方便组织,更好地发挥主题的威力,你可以使用主题类型变种。它们用起来就像普通的主题类型,但无法自给自足,不是独立的,扩展自其他类型,称作基础类型。
还是上面的例子,你的主题可以为 Button 类型定义样式、颜色、以及字体,UI 中的所有按钮元素都会得到自定义。如果要再有灰色、红色、蓝色按钮,你就会创建一个新的类型,例如 GrayButton,然后把它标记为基础 Button 类型的变种。
类型变种可以在替换掉基础类型的某些内容的同时保留其他方面。它们还可以定义基础样式没有定义的属性。例如,你的 GrayButton 可以覆盖基础 Button 的 normal 样式,加上 Button 里没有定义的 font_color。控件会使用这两个类型的组合,并且优先使用类型变种。
备注
控件如何确定使用哪个类型、哪个主题、哪个主题项目,在《GUI 皮肤简介》一文的自定义项目部分有更详尽的描述。
创建类型变种
要创建主题变种,请打开主题编辑器,然后点击编辑器右侧类型下拉框旁的加号图标。在文本框中输入你给你的主题类型变种起的名字,然后点击添加类型。
类型下拉框的下方是属性选项卡。请切换到图标是扳手和螺丝刀的选项卡。
点击基础类型字段旁的加号。你可以在此处选择基础类型,一般就是控件节点的类名(例如 Button、Label 等)。类型变种还可以进行嵌套,扩展其他类型变种。这就和控件节点的继承基类风格一样。例如,CheckButton 继承 Button 的风格,因为对应的节点类型存在扩展关系。
选好基础类型之后,你应该就能在主题编辑器的其他选项卡中看到对应的属性了。你可以像往常一样去编辑。
使用类型变种
现在已经创建好了一个类型变种,你可以将其应用到你的节点上了。检查器面板中,在控件节点的 Theme 属性下,你可以找到 Theme Type Variation 属性。默认为空,表示只有基础类型会对这个节点起效。
你可以直接从下拉列表中选择一个类型变体,也可以手动输入它的名称。不过要注意,只有当该类型变体属于项目全局主题(你可以在项目设置中进行配置)时,它才会出现在下拉列表中。如果是其他情况,你就必须手动输入变体的名称了。具体操作是:点击右侧的铅笔图标,然后输入类型变体的名称,最后点击对勾图标或直接按回车键确认。只要存在同名的类型变体,该节点就会立刻应用它。