Theme

Inherits: Resource < Reference < Object

控件的主题。

描述

控件的外观主题。控件可以单独定制外观,单对于复杂应用程序而言,直接创建一个全局的主题对整体进行定义更易于操作。主题可以应用于任何 Control;该控件极其子节点都会自动使用。

还可以通过编写 .theme 文件加载主题资源,更多信息见文档。

教程

属性

Font

default_font

方法

void

clear ( )

void

clear_color ( String name, String node_type )

void

clear_constant ( String name, String node_type )

void

clear_font ( String name, String node_type )

void

clear_icon ( String name, String node_type )

void

clear_stylebox ( String name, String node_type )

void

clear_theme_item ( DataType data_type, String name, String node_type )

void

copy_default_theme ( )

void

copy_theme ( Theme other )

Color

get_color ( String name, String node_type ) const

PoolStringArray

get_color_list ( String node_type ) const

PoolStringArray

get_color_types ( ) const

int

get_constant ( String name, String node_type ) const

PoolStringArray

get_constant_list ( String node_type ) const

PoolStringArray

get_constant_types ( ) const

Font

get_font ( String name, String node_type ) const

PoolStringArray

get_font_list ( String node_type ) const

PoolStringArray

get_font_types ( ) const

Texture

get_icon ( String name, String node_type ) const

PoolStringArray

get_icon_list ( String node_type ) const

PoolStringArray

get_icon_types ( ) const

StyleBox

get_stylebox ( String name, String node_type ) const

PoolStringArray

get_stylebox_list ( String node_type ) const

PoolStringArray

get_stylebox_types ( ) const

Variant

get_theme_item ( DataType data_type, String name, String node_type ) const

PoolStringArray

get_theme_item_list ( DataType data_type, String node_type ) const

PoolStringArray

get_theme_item_types ( DataType data_type ) const

PoolStringArray

get_type_list ( String node_type ) const

bool

has_color ( String name, String node_type ) const

bool

has_constant ( String name, String node_type ) const

bool

has_default_font ( ) const

bool

has_font ( String name, String node_type ) const

bool

has_icon ( String name, String node_type ) const

bool

has_stylebox ( String name, String node_type ) const

bool

has_theme_item ( DataType data_type, String name, String node_type ) const

void

merge_with ( Theme other )

void

rename_color ( String old_name, String name, String node_type )

void

rename_constant ( String old_name, String name, String node_type )

void

rename_font ( String old_name, String name, String node_type )

void

rename_icon ( String old_name, String name, String node_type )

void

rename_stylebox ( String old_name, String name, String node_type )

void

rename_theme_item ( DataType data_type, String old_name, String name, String node_type )

void

set_color ( String name, String node_type, Color color )

void

set_constant ( String name, String node_type, int constant )

void

set_font ( String name, String node_type, Font font )

void

set_icon ( String name, String node_type, Texture texture )

void

set_stylebox ( String name, String node_type, StyleBox texture )

void

set_theme_item ( DataType data_type, String name, String node_type, Variant value )

枚举

enum DataType:

  • DATA_TYPE_COLOR = 0 —- 主题的 Color 颜色项类型。

  • DATA_TYPE_CONSTANT = 1 —- 主题的常量项类型。

  • DATA_TYPE_FONT = 2 —- 主题的 Font 字体项类型。

  • DATA_TYPE_ICON = 3 —- 主题的图标Texture项类型。

  • DATA_TYPE_STYLEBOX = 4 —- 主题的StyleBox项目类型。

  • DATA_TYPE_MAX = 5 —- 数据类型枚举的最大值。

属性说明

Setter

set_default_font(value)

Getter

get_default_font()

Theme 资源的默认字体。用作此主题中定义的字体项的后备值,但具有无效值。如果此值也无效,则使用全局默认值。

使用 has_default_font 来检查这个值是否有效。

方法说明

  • void clear ( )

清除主题上的所有值。


如果主题包含 node_type,则清除名为 nameColor颜色。


如果主题包含 node_type,则清除名为 name 的常量。


如果主题包含 node_type,则清除名为 nameFont字体。


如果主题包含 node_type,则清除名为 name 的图标。


如果主题包含 node_type,则清除名为 nameStyleBox样式盒。


如果主题具有 node_type,则清除 name 处的 data_type 主题项。


  • void copy_default_theme ( )

将主题的取值设置为默认主题的副本。


  • void copy_theme ( Theme other )

将主题的取值设置为指定主题的副本。


如果主题有node_type,返回name处的Color


如果主题有node_type,将所有的Color作为PoolStringArray返回,并填充每个Color的名称,用于get_color使用。


返回所有的Color类型为PoolStringArray,其中填充了唯一类型名称,供get_color和/或get_color_list使用。


如果主题有node_type,返回name处的常量。


如果主题有node_type,将所有常量作为PoolStringArray返回,并填充每个常量的名称,以供get_constant使用。


返回所有的常量类型为PoolStringArray,其中填充唯一的类型名称,以供get_constant和/或get_constant_list使用。


如果主题有node_type,返回name处的Font


如果主题有node_type,将所有的Font作为PoolStringArray返回,并填入每个Font的名称,以供get_font使用。


返回所有的Font类型为PoolStringArray,其中填充唯一的类型名称,以供get_font和/或get_font_list使用。


如果主题有node_type,返回name处的图标Texture


如果主题有node_type,则返回所有的图标为一个PoolStringArray,并填入每个Texture的名称,以供get_icon使用。


返回所有的图标类型为PoolStringArray,其中填充唯一的类型名称,以供get_icon和/或get_icon_list使用。


如果主题有node_type,返回name处的StyleBox

可以使用get_stylebox_list找到有效的name。可以通过get_stylebox_types来找到有效的node_type


如果主题有node_type,则返回所有StyleBoxPoolStringArray,并填入每个StyleBox的名称,以供get_stylebox使用。

可以使用get_stylebox_types找到有效的node_type


返回所有StyleBox类型为PoolStringArray,其中填充了唯一的类型名称,以供get_stylebox和/或get_stylebox_list使用。


如果主题有 node_type,则以 name 返回 data_type 的主题项目。

使用 get_theme_item_list 或数据类型特定方法,可能会找到有效的 name。可以使用 get_theme_item_types 或数据类型特定方法,找到有效的 node_type


返回所有data_type的主题项目,以PoolStringArray的形式填入每个主题项目的名称,如果主题有node_type,可以在get_theme_item或特定数据类型方法中使用。

可以通过get_theme_item_types或特定数据类型的方法找到有效的node_type


返回所有data_type类型的主题项,作为填入唯一类型名称的PoolStringArray,以供get_theme_itemget_theme_item_list或数据类型特定方法使用。


将所有的主题类型作为一个PoolStringArray返回,其中填入了唯一的类型名称,以供这个主题的其他get_*函数使用。

注意:node_type没有生效,在未来的版本中会被删除。


如果带有nameColornode_type中,则返回true

如果主题没有node_type,则返回false


如果带有name的常量在node_type中,则返回true

如果主题没有node_type,则返回false


  • bool has_default_font ( ) const

如果这个主题有一个有效的default_font值,返回true


如果带有nameFontnode_type中,则返回true

如果主题没有node_type,则返回false


如果带有name的图标Texturenode_type中,则返回true

如果主题没有node_type,则返回false


如果带有nameStyleBoxnode_type中,返回true

如果主题没有node_type,则返回false


如果一个data_type的主题项目与namenode_type中,则返回true

如果该主题没有node_type,则返回false


  • void merge_with ( Theme other )

other``Theme的值添加缺失的,和覆盖现有的定义。

注意: 这将修改当前的主题。如果你想在不修改任何一个主题的情况下将两个主题合并在一起,请创建一个新的空主题,然后将另外两个主题逐个合并到其中。


如果主题有node_type,则将old_nameColor重命名为name。如果name已经被占用,则此方法将失败。


如果主题有node_type,则将old_name的常量重命名为name。如果name已经被占用,则此方法失败。


如果主题有node_type,则将old_nameFont重命名为name。如果name已经被占用,则此方法失败。


如果主题有node_type,将old_name的图标重命名为name。如果name已经被占用,则此方法失败。


如果主题有node_type,则将StyleBoxold_name重命名为name。如果name已经被占用,此方法会失败。


如果主题具有 node_type,则将 old_name 处的 data_type 的主题项重命名为 name。如果 name 已经被占用,则此方法失败。


node_type中的name处,设置主题的Colorcolor

如果主题没有node_type,则创建该节点。


node_type中的name处,将主题的常量设置为constant

如果主题没有,则创建node_type


node_type中的name处将主题的 Font 设置为font

如果主题没有node_type,则创建该节点。


node_type中的name处设置主题的图标Texturetexture

如果主题没有node_type,则创建该节点。


将主题的StyleBox设置为stylebox,在node_typename处。

如果主题没有node_type,则创建该节点。


data_type的主题项目设置为value,在node_type中的name

如果value类型与data_type不匹配,则不做任何处理。

如果主题没有node_type,则创建该类型。