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.

Theme

继承: Resource < RefCounted < Object

用于样式化/皮肤化 ControlWindow 的资源。

描述

用于样式化/皮肤化 ControlWindow 节点的资源。控件可以使用本地的主题覆盖项进行单独的风格化(见 Control.add_theme_color_override),而主题资源则能够存储这些设置,在所有同类型的控件之间实现共享(例如将所有 Button 都设置为相同的风格)。主题资源可以在整个项目上使用,但你也可以为单独的一个控件节点分支设置不同的主题资源。为某个控件节点分配的主题资源不仅会对它自己生效,也会对它的所有直接和间接子节点生效(只要控件链没有中断)。

项目范围的主题请使用 ProjectSettings.gui/theme/custom 设置,这样项目中的所有控件就都能够使用。

控件节点的主题请使用 Control.theme 设置,这样该控件和它的所有直接和间接子节点就都能够使用。

教程

属性

float

default_base_scale

0.0

Font

default_font

int

default_font_size

-1

方法

void

add_type(theme_type: StringName)

void

clear()

void

clear_color(name: StringName, theme_type: StringName)

void

clear_constant(name: StringName, theme_type: StringName)

void

clear_font(name: StringName, theme_type: StringName)

void

clear_font_size(name: StringName, theme_type: StringName)

void

clear_icon(name: StringName, theme_type: StringName)

void

clear_stylebox(name: StringName, theme_type: StringName)

void

clear_theme_item(data_type: DataType, name: StringName, theme_type: StringName)

void

clear_type_variation(theme_type: StringName)

Color

get_color(name: StringName, theme_type: StringName) const

PackedStringArray

get_color_list(theme_type: String) const

PackedStringArray

get_color_type_list() const

int

get_constant(name: StringName, theme_type: StringName) const

PackedStringArray

get_constant_list(theme_type: String) const

PackedStringArray

get_constant_type_list() const

Font

get_font(name: StringName, theme_type: StringName) const

PackedStringArray

get_font_list(theme_type: String) const

int

get_font_size(name: StringName, theme_type: StringName) const

PackedStringArray

get_font_size_list(theme_type: String) const

PackedStringArray

get_font_size_type_list() const

PackedStringArray

get_font_type_list() const

Texture2D

get_icon(name: StringName, theme_type: StringName) const

PackedStringArray

get_icon_list(theme_type: String) const

PackedStringArray

get_icon_type_list() const

StyleBox

get_stylebox(name: StringName, theme_type: StringName) const

PackedStringArray

get_stylebox_list(theme_type: String) const

PackedStringArray

get_stylebox_type_list() const

Variant

get_theme_item(data_type: DataType, name: StringName, theme_type: StringName) const

PackedStringArray

get_theme_item_list(data_type: DataType, theme_type: String) const

PackedStringArray

get_theme_item_type_list(data_type: DataType) const

PackedStringArray

get_type_list() const

StringName

get_type_variation_base(theme_type: StringName) const

PackedStringArray

get_type_variation_list(base_type: StringName) const

bool

has_color(name: StringName, theme_type: StringName) const

bool

has_constant(name: StringName, theme_type: StringName) const

bool

has_default_base_scale() const

bool

has_default_font() const

bool

has_default_font_size() const

bool

has_font(name: StringName, theme_type: StringName) const

bool

has_font_size(name: StringName, theme_type: StringName) const

bool

has_icon(name: StringName, theme_type: StringName) const

bool

has_stylebox(name: StringName, theme_type: StringName) const

bool

has_theme_item(data_type: DataType, name: StringName, theme_type: StringName) const

bool

is_type_variation(theme_type: StringName, base_type: StringName) const

void

merge_with(other: Theme)

void

remove_type(theme_type: StringName)

void

rename_color(old_name: StringName, name: StringName, theme_type: StringName)

void

rename_constant(old_name: StringName, name: StringName, theme_type: StringName)

void

rename_font(old_name: StringName, name: StringName, theme_type: StringName)

void

rename_font_size(old_name: StringName, name: StringName, theme_type: StringName)

void

rename_icon(old_name: StringName, name: StringName, theme_type: StringName)

void

rename_stylebox(old_name: StringName, name: StringName, theme_type: StringName)

void

rename_theme_item(data_type: DataType, old_name: StringName, name: StringName, theme_type: StringName)

void

set_color(name: StringName, theme_type: StringName, color: Color)

void

set_constant(name: StringName, theme_type: StringName, constant: int)

void

set_font(name: StringName, theme_type: StringName, font: Font)

void

set_font_size(name: StringName, theme_type: StringName, font_size: int)

void

set_icon(name: StringName, theme_type: StringName, texture: Texture2D)

void

set_stylebox(name: StringName, theme_type: StringName, texture: StyleBox)

void

set_theme_item(data_type: DataType, name: StringName, theme_type: StringName, value: Variant)

void

set_type_variation(theme_type: StringName, base_type: StringName)


枚举

enum DataType: 🔗

DataType DATA_TYPE_COLOR = 0

主题的 Color 颜色项类型。

DataType DATA_TYPE_CONSTANT = 1

主题的常量项类型。

DataType DATA_TYPE_FONT = 2

主题的 Font 字体项类型。

DataType DATA_TYPE_FONT_SIZE = 3

主题的字体大小项类型。

DataType DATA_TYPE_ICON = 4

主题的图标 Texture2D 项类型。

DataType DATA_TYPE_STYLEBOX = 5

主题的 StyleBox 项目类型。

DataType DATA_TYPE_MAX = 6

数据类型枚举的最大值。


属性说明

float default_base_scale = 0.0 🔗

  • void set_default_base_scale(value: float)

  • float get_default_base_scale()

该主题资源的默认基础缩放系数。部分控件会用它来根据全局缩放系数对其视觉属性进行缩放。如果该值为 0.0,则使用全局缩放系数(见 ThemeDB.fallback_base_scale)。

请使用 has_default_base_scale 来检查该值是否有效。


Font default_font 🔗

  • void set_default_font(value: Font)

  • Font get_default_font()

该主题资源的默认字体。尝试获取字体资源时,如果该主题中不存在或者为无效状态,则会用它作为默认值。如果默认字体也缺失或无效,则会使用引擎的回退值(见 ThemeDB.fallback_font)。

请使用 has_default_font 来检查该值是否有效。


int default_font_size = -1 🔗

  • void set_default_font_size(value: int)

  • int get_default_font_size()

该主题资源的默认字体大小。尝试获取字体大小时,如果该主题中不存在或者为无效状态,则会用它作为默认值。如果默认字体大小也缺失或无效,则会使用引擎的回退值(见 ThemeDB.fallback_font_size)。

小于 0 的值无效,可用于清除对该属性的设置。请使用 has_default_font_size 来检查该值是否有效。


方法说明

void add_type(theme_type: StringName) 🔗

为每一个有效的数据类型都添加一个空主题类型。

注意:空类型不会随该主题保存。这个方法的存在是为了对资源执行内存中的更改。请使用 set_* 方法添加主题项目。


void clear() 🔗

移除在该主题资源上定义的所有主题属性。


void clear_color(name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的 Color 属性,则将其移除。

如果不存在则失败。请使用 has_color 检查是否存在。


void clear_constant(name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的常量属性,则将其移除。

如果不存在则失败。请使用 has_constant 检查是否存在。


void clear_font(name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的 Font 属性,则将其移除。

如果不存在则失败。请使用 has_font 检查是否存在。


void clear_font_size(name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的字体大小属性,则将其移除。

如果不存在则失败。请使用 has_font_size 检查是否存在。


void clear_icon(name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的图标属性,则将其移除。

如果不存在则失败。请使用 has_icon 检查是否存在。


void clear_stylebox(name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的 StyleBox 属性,则将其移除。

如果不存在则失败。请使用 has_stylebox 检查是否存在。


void clear_theme_item(data_type: DataType, name: StringName, theme_type: StringName) 🔗

如果存在由 nametheme_type 定义的 data_type 属性,则将其移除。

如果不存在则失败。请使用 has_theme_item 检查是否存在。

注意:这个方法类似于调用相应的数据类型特定方法,但可以用于更通用逻辑。


void clear_type_variation(theme_type: StringName) 🔗

取消将主题类型 theme_type 标记为任何主题类型的变种。见 set_type_variation


Color get_color(name: StringName, theme_type: StringName) const 🔗

如果存在由 nametheme_type 定义的 Color 属性,则将其返回。

如果不存在则返回默认颜色。请使用 has_color 检查是否存在。


PackedStringArray get_color_list(theme_type: String) const 🔗

返回为 theme_type 类型定义的 Color 属性的名称列表。请使用 get_color_type_list 获取可能的主题类型名称。


PackedStringArray get_color_type_list() const 🔗

返回 Color 属性的所有唯一主题类型名称的列表。请使用 get_type_list 获取所有主题类型。


int get_constant(name: StringName, theme_type: StringName) const 🔗

如果存在由 nametheme_type 定义的常量属性,则将其返回。

如果不存在则返回 0。请使用 has_constant 检查是否存在。


PackedStringArray get_constant_list(theme_type: String) const 🔗

返回为 theme_type 类型定义的常量属性的名称列表。请使用 get_constant_type_list 获取可能的主题类型名称。


PackedStringArray get_constant_type_list() const 🔗

返回常量属性的所有唯一主题类型名称的列表。请使用 get_type_list 获取所有主题类型。


Font get_font(name: StringName, theme_type: StringName) const 🔗

如果存在由 nametheme_type 定义的 Font 属性,则将其返回。

如果不存在且存在默认主题字体,则返回默认主题字体(见 default_font)。请使用 has_font 检查是否存在,使用 has_defau