Theme

Наследует: Resource < RefCounted < Object

Ресурс, используемый для стилизации/скининга оформления Control и Window.

Описание

Ресурс, используемый для стилизации/стиля узлов Control и Window. В то время как отдельные элементы управления могут быть стилизованы с использованием их локальных переопределений темы (см. 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

rename_type(old_theme_type: 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

Максимальное значение для перечисления DataType.


Описания свойств

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).

Значения ниже 1 недействительны и могут использоваться для сброса свойства. Используйте has_default_font_size(), чтобы проверить, является ли это значение допустимым.


Описания метода

void add_type(theme_type: StringName) 🔗

Добавляет пустой тип темы для каждого допустимого типа данных.

Примечание: Пустые типы не сохраняются с темой. Этот метод существует только для выполнения изменений в памяти ресурса. Используйте доступные методы set_* для добавления элементов темы.


void clear() 🔗

Удаляет все свойства темы, определенные в ресурсе темы.


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

Удаляет свойство Color, определенное name и theme_type, если оно существует.

Не выполняется, если оно не существует. Используйте has_color() для проверки существования.


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

Удаляет константное свойство, определенное name и theme_type, если оно существует.

Не выполняется, если оно не существует. Используйте has_constant() для проверки существования.


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

Удаляет свойство Font, определенное name и theme_type, если оно существует.

Не выполняется, если оно не существует. Используйте has_font() для проверки существования.


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

Удаляет свойство размера шрифта, определенное name и theme_type, если оно существует.

Не выполняется, если оно не существует. Используйте has_font_size() для проверки существования.


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

Удаляет свойство значка, определенное name и theme_type, если оно существует.

Не выполняется, если оно не существует. Используйте has_icon() для проверки существования.


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

Удаляет свойство StyleBox, определенное name и theme_type, если оно существует.

Не выполняется, если оно не существует. Используйте has_stylebox() для проверки существования.


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

Удаляет свойство темы data_type, определенное name и theme_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 🔗

Возвращает свойство Color, определенное name и theme_type, если оно существует.

Возвращает значение цвета по умолчанию, если свойство не существует. Используйте has_color() для проверки существования.


PackedStringArray get_color_list(theme_type: String) const 🔗

Возвращает список имен для свойств Color, определенных с помощью theme_type. Используйте get_color_type_list(), чтобы получить список возможных имен типов темы.


PackedStringArray get_color_type_list() const 🔗

Возвращает список всех уникальных названий типов тем для свойств Color. Используйте get_type_list(), чтобы получить список всех уникальных типов тем.


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

Возвращает константное свойство, определенное name и theme_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 🔗

Возвращает свойство Font, определенное name и theme_type, если оно существует.

Возвращает шрифт темы по умолчанию, если свойство не существует и шрифт темы по умолчанию установлен (см. default_font). Используйте has_font() для проверки существования свойства и has_default_font() для проверки существования шрифта темы по умолчанию.

Возвращает значение резервного шрифта движка, если ни один из них не существует (см. ThemeDB.fallback_font).


PackedStringArray get_font_list(theme_type: String) const 🔗

Возвращает список имен для свойств Font, определенных с помощью theme_type. Используйте get_font_type_list(), чтобы получить список возможных имен типов темы.


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

Возвращает свойство размера шрифта, определенное name и theme_type, если оно существует.

Возвращает размер шрифта темы по умолчанию, если свойство не существует и размер шрифта темы по умолчанию установлен (см. default_font_size). Используйте has_font_size() для проверки существования свойства и has_default_font_size() для проверки существования шрифта темы по умолчанию.

Возвращает значение резервного размера шрифта движка, если ни то, ни другое не существует (см. ThemeDB.fallback_font_size).


PackedStringArray get_font_size_list(theme_type: String) const 🔗

Возвращает список имен для свойств размера шрифта, определенных с помощью theme_type. Используйте get_font_size_type_list(), чтобы получить список возможных имен типов темы.


PackedStringArray get_font_size_type_list() const 🔗

Возвращает список всех уникальных названий типов тем для свойств размера шрифта. Используйте get_type_list(), чтобы получить список всех уникальных типов тем.


PackedStringArray get_font_type_list() const 🔗

Возвращает список всех уникальных названий типов тем для свойств Font. Используйте get_type_list(), чтобы получить список всех уникальных типов тем.


Texture2D get_icon(name: StringName, theme_type: StringName) const 🔗

Возвращает свойство значка, определенное name и theme_type, если оно существует.

Возвращает значение значка резервного движка, если свойство не существует (см. ThemeDB.fallback_icon). Используйте has_icon() для проверки существования.


PackedStringArray get_icon_list(theme_type: String) const 🔗

Возвращает список имен для свойств значка, определенных с помощью theme_type. Используйте get_icon_type_list() для получения списка возможных имен типов темы.


PackedStringArray get_icon_type_list() const 🔗

Возвращает список всех уникальных названий типов тем для свойств значка. Используйте get_type_list(), чтобы получить список всех уникальных типов тем.


StyleBox get_stylebox(name: StringName, theme_type: StringName) const 🔗

Возвращает свойство StyleBox, определенное name и theme_type, если оно существует.

Возвращает резервное значение stylebox движка, если свойство не существует (см. ThemeDB.fallback_stylebox). Используйте has_stylebox() для проверки существования.


PackedStringArray get_stylebox_list(theme_type: String) const 🔗

Возвращает список имен для свойств StyleBox, определенных с помощью theme_type. Используйте get_stylebox_type_list(), чтобы получить список возможных имен типов тем.


PackedStringArray get_stylebox_type_list() const 🔗

Возвращает список всех уникальных названий типов тем для свойств StyleBox. Используйте get_type_list(), чтобы получить список всех уникальных типов тем.


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

Возвращает свойство темы data_type, определенное name и theme_type, если оно существует.

Возвращает резервное значение движка, если свойство не существует (см. ThemeDB). Используйте has_theme_item() для проверки существования.

Примечание: Этот метод аналогичен вызову соответствующего метода, специфичного для типа данных, но может использоваться для более обобщенной логики.


PackedStringArray get_theme_item_list(data_type: DataType, theme_type: String) const 🔗

Возвращает список имен для свойств data_type, определенных с помощью theme_type. Используйте get_theme_item_type_list(), чтобы получить список возможных имен типов темы.

Примечание: Этот метод аналогичен вызову соответствующего метода, специфичного для типа данных, но может использоваться для более обобщенной логики.


PackedStringArray get_theme_item_type_list(data_type: DataType) const 🔗

Возвращает список всех уникальных названий типов тем для свойств data_type. Используйте get_type_list(), чтобы получить список всех уникальных типов тем.

Примечание: Этот метод аналогичен вызову соответствующего метода, специфичного для типа данных, но может использоваться для более обобщенной логики.


PackedStringArray get_type_list() const 🔗

Возвращает список всех уникальных названий типов тем. Используйте соответствующий метод get_*_type_list, чтобы получить список уникальных типов тем для одного типа данных.


StringName get_type_variation_base(theme_type: StringName) const 🔗

Возвращает имя базового типа темы, если theme_type является допустимым типом вариации. В противном случае возвращает пустую строку.


PackedStringArray get_type_variation_list(base_type: StringName) const 🔗

Возвращает список всех вариаций типов для заданного base_type.


bool has_color(name: StringName, theme_type: StringName) const 🔗

Возвращает true, если свойство Color, определенное name и theme_type, существует.

Возвращает false, если оно не существует. Используйте set_color(), чтобы определить его.


bool has_constant(name: StringName, theme_type: StringName) const 🔗

Возвращает true, если константное свойство, определенное name и theme_type, существует.

Возвращает false, если оно не существует. Используйте set_constant(), чтобы определить его.


bool has_default_base_scale() const 🔗

Возвращает true, если default_base_scale имеет допустимое значение.

Возвращает false, если нет. Значение должно быть больше 0.0, чтобы считаться допустимым.


bool has_default_font() const 🔗

Возвращает true, если default_font имеет допустимое значение.

Возвращает false, если нет.


bool has_default_font_size() const 🔗

Возвращает true, если default_font_size имеет допустимое значение.

Возвращает false, если нет. Значение должно быть больше 0, чтобы считаться допустимым.


bool has_font(name: StringName, theme_type: StringName) const 🔗

Возвращает true, если свойство Font, определенное name и theme_type, существует, или если установлен шрифт темы по умолчанию (см. has_default_font()).

Возвращает false, если ни то, ни другое не существует. Используйте set_font() для определения свойства.


bool has_font_size(name: StringName, theme_type: StringName) const 🔗

Возвращает true, если свойство размера шрифта, определенное name и theme_type, существует, или если установлен размер шрифта темы по умолчанию (см. has_default_font_size()).

Возвращает false, если ни то, ни другое не существует. Используйте set_font_size() для определения свойства.


bool has_icon(name: StringName, theme_type: StringName) const 🔗

Возвращает true, если свойство значка, определенное name и theme_type, существует.

Возвращает false, если оно не существует. Используйте set_icon(), чтобы определить его.


bool has_stylebox(name: StringName, theme_type: StringName) const 🔗

Возвращает true, если свойство StyleBox, определенное name и theme_type, существует.

Возвращает false, если оно не существует. Используйте set_stylebox(), чтобы определить его.


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

Возвращает true, если свойство темы data_type, определенное name и theme_type, существует.

Возвращает false, если оно не существует. Используйте set_theme_item(), чтобы определить его.

Примечание: Этот метод аналогичен вызову соответствующего метода, специфичного для типа данных, но может использоваться для более обобщенной логики.


bool is_type_variation(theme_type: StringName, base_type: StringName) const 🔗

Возвращает true, если theme_type отмечен как вариация base_type.


void merge_with(other: Theme) 🔗

Добавляет отсутствующие и переопределяет существующие определения значениями из ресурса темы other.

Примечание: Это изменяет текущую тему. Если вы хотите объединить две темы, не изменяя ни одну из них, создайте новую пустую тему и объедините в нее две другие одну за другой.


void remove_type(theme_type: StringName) 🔗

Удаляет тип темы, изящно отбрасывая определенные элементы темы. Если тип является вариацией, эта информация также стирается. Если тип является базой для вариаций типа, эти вариации теряют свою базу.


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

Переименовывает свойство Color, определенное old_name и theme_type, в name, если оно существует.

Не удается, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_color() для проверки существования и clear_color() для удаления существующего свойства.


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

Переименовывает константное свойство, определенное old_name и theme_type, в name, если оно существует.

Не удается, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_constant() для проверки существования и clear_constant() для удаления существующего свойства.


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

Переименовывает свойство Font, определенное old_name и theme_type, в name, если оно существует.

Не удается, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_font() для проверки существования и clear_font() для удаления существующего свойства.


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

Переименовывает свойство размера шрифта, определенное old_name и theme_type, в name, если оно существует.

Не удается, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_font_size() для проверки существования и clear_font_size() для удаления существующего свойства.


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

Переименовывает свойство значка, определенное old_name и theme_type, в name, если оно существует.

Не удается, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_icon() для проверки существования и clear_icon() для удаления существующего свойства.


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

Переименовывает свойство StyleBox, определенное old_name и theme_type, в name, если оно существует.

Не удается, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_stylebox() для проверки существования и clear_stylebox() для удаления существующего свойства.


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

Переименовывает свойство темы data_type, определенное old_name и theme_type, в name, если оно существует.

Неудача, если оно не существует или если похожее свойство с новым именем уже существует. Используйте has_theme_item() для проверки существования и clear_theme_item() для удаления существующего свойства.

Примечание: Этот метод аналогичен вызову соответствующего метода, специфичного для типа данных, но может использоваться для более общей логики.


void rename_type(old_theme_type: StringName, theme_type: StringName) 🔗

Переименовывает тип темы old_theme_type в theme_type, если старый тип существует, а новый — нет.

Примечание: Переименование типа темы в пустое имя или вариации в тип, связанный со встроенным классом, удаляет связи между вариациями типов таким образом, что это нельзя отменить, просто отменив переименование.


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

Создает или изменяет значение свойства Color, определенного name и theme_type. Используйте clear_color() для удаления свойства.


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

Создает или изменяет значение константного свойства, определенного name и theme_type. Используйте clear_constant() для удаления свойства.


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

Создает или изменяет значение свойства Font, определенного name и theme_type. Используйте clear_font() для удаления свойства.


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

Создает или изменяет значение свойства размера шрифта, определенного name и theme_type. Используйте clear_font_size() для удаления свойства.


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

Создает или изменяет значение свойства значка, определенного name и theme_type. Используйте clear_icon() для удаления свойства.


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

Создает или изменяет значение свойства StyleBox, определенного name и theme_type. Используйте clear_stylebox() для удаления свойства.


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

Создает или изменяет значение свойства темы data_type, определенного name и theme_type. Используйте clear_theme_item(), чтобы удалить свойство.

Завершается сбоем, если тип value не принимается data_type.

Примечание: Этот метод аналогичен вызову соответствующего метода, специфичного для типа данных, но может использоваться для более обобщенной логики.


void set_type_variation(theme_type: StringName, base_type: StringName) 🔗

Отмечает theme_type как вариант base_type.

Это добавляет theme_type как предлагаемый вариант для Control.theme_type_variation в Control, который принадлежит классу base_type.

Вариации также могут быть вложенными, т. е. base_type может быть другим вариантом. Если цепочка вариантов заканчивается base_type, соответствующим классу Control, вся цепочка будет предложена в качестве вариантов.

Примечание: Предложения отображаются только в том случае, если этот ресурс темы установлен в качестве темы проекта по умолчанию. См. ProjectSettings.gui/theme/custom.