TreeItem

继承: Object

Tree中单个项目的内部控制。

描述

Tree控件的单个项目。它可以包含其他TreeItem作为子项,这允许它创建层次结构。它还可以包含文本和按钮。TreeItem不是Item,它是Tree的内部。

要创建TreeItem,请使用Tree.create_item()create_child()。要删除TreeItem,请使用Object.free()

注意:用于按钮的ID值是32位,不像int总是64位。它们从-21474836482147483647

属性

方法

void

add_button(column: int, button: Texture2D, id: int = -1, disabled: bool = false, tooltip_text: String = "")

void

add_child(child: TreeItem)

void

call_recursive(method: StringName, ...) vararg

void

clear_buttons()

void

clear_custom_bg_color(column: int)

void

clear_custom_color(column: int)

TreeItem

create_child(index: int = -1)

void

deselect(column: int)

void

erase_button(column: int, button_index: int)

AutoTranslateMode

get_auto_translate_mode(column: int) const

AutowrapMode

get_autowrap_mode(column: int) const

Texture2D

get_button(column: int, button_index: int) const

int

get_button_by_id(column: int, id: int) const

Color

get_button_color(column: int, id: int) const

int

get_button_count(column: int) const

int

get_button_id(column: int, button_index: int) const

String

get_button_tooltip_text(column: int, button_index: int) const

TreeCellMode

get_cell_mode(column: int) const

TreeItem

get_child(index: int)

int

get_child_count()

Array[TreeItem]

get_children()

Color

get_custom_bg_color(column: int) const

Color

get_custom_color(column: int) const

Callable

get_custom_draw_callback(column: int) const

Font

get_custom_font(column: int) const

int

get_custom_font_size(column: int) const

bool

get_expand_right(column: int) const

TreeItem

get_first_child() const

Texture2D

get_icon(column: int) const

int

get_icon_max_width(column: int) const

Color

get_icon_modulate(column: int) const

Texture2D

get_icon_overlay(column: int) const

Rect2

get_icon_region(column: int) const

int

get_index()

String

get_language(column: int) const

Variant

get_metadata(column: int) const

TreeItem

get_next() const

TreeItem

get_next_in_tree(wrap: bool = false)

TreeItem

get_next_visible(wrap: bool = false)

TreeItem

get_parent() const

TreeItem

get_prev()

TreeItem

get_prev_in_tree(wrap: bool = false)

TreeItem

get_prev_visible(wrap: bool = false)

float

get_range(column: int) const

Dictionary

get_range_config(column: int)

StructuredTextParser

get_structured_text_bidi_override(column: int) const

Array

get_structured_text_bidi_override_options(column: int) const

String

get_suffix(column: int) const

String

get_text(column: int) const

HorizontalAlignment

get_text_alignment(column: int) const

TextDirection

get_text_direction(column: int) const

OverrunBehavior

get_text_overrun_behavior(column: int) const

String

get_tooltip_text(column: int) const

Tree

get_tree() const

bool

is_any_collapsed(only_visible: bool = false)

bool

is_button_disabled(column: int, button_index: int) const

bool

is_checked(column: int) const

bool

is_custom_set_as_button(column: int) const

bool

is_edit_multiline(column: int) const

bool

is_editable(column: int)

bool

is_indeterminate(column: int) const

bool

is_selectable(column: int) const

bool

is_selected(column: int)

bool

is_visible_in_tree() const

void

move_after(item: TreeItem)

void

move_before(item: TreeItem)

void

propagate_check(column: int, emit_signal: bool = true)

void

remove_child(child: TreeItem)

void

select(column: int)

void

set_auto_translate_mode(column: int, mode: AutoTranslateMode)

void

set_autowrap_mode(column: int, autowrap_mode: AutowrapMode)

void

set_button(column: int, button_index: int, button: Texture2D)

void

set_button_color(column: int, button_index: int, color: Color)

void

set_button_disabled(column: int, button_index: int, disabled: bool)

void

set_button_tooltip_text(column: int, button_index: int, tooltip: String)

void

set_cell_mode(column: int, mode: TreeCellMode)

void

set_checked(column: int, checked: bool)

void

set_collapsed_recursive(enable: bool)

void

set_custom_as_button(column: int, enable: bool)

void

set_custom_bg_color(column: int, color: Color, just_outline: bool = false)

void

set_custom_color(column: int, color: Color)

void

set_custom_draw(column: int, object: Object, callback: StringName)

void

set_custom_draw_callback(column: int, callback: Callable)

void

set_custom_font(column: int, font: Font)

void

set_custom_font_size(column: int, font_size: int)

void

set_edit_multiline(column: int, multiline: bool)

void

set_editable(column: int, enabled: bool)

void

set_expand_right(column: int, enable: bool)

void

set_icon(column: int, texture: Texture2D)

void

set_icon_max_width(column: int, width: int)

void

set_icon_modulate(column: int, modulate: Color)

void

set_icon_overlay(column: int, texture: Texture2D)

void

set_icon_region(column: int, region: Rect2)

void

set_indeterminate(column: int, indeterminate: bool)

void

set_language(column: int, language: String)

void

set_metadata(column: int, meta: Variant)

void

set_range(column: int, value: float)

void

set_range_config(column: int, min: float, max: float, step: float, expr: bool = false)

void

set_selectable(column: int, selectable: bool)

void

set_structured_text_bidi_override(column: int, parser: StructuredTextParser)

void

set_structured_text_bidi_override_options(column: int, args: Array)

void

set_suffix(column: int, text: String)

void

set_text(column: int, text: String)

void

set_text_alignment(column: int, text_alignment: HorizontalAlignment)

void

set_text_direction(column: int, direction: TextDirection)

void

set_text_overrun_behavior(column: int, overrun_behavior: OverrunBehavior)

void

set_tooltip_text(column: int, tooltip: String)

void

uncollapse_tree()


枚举

enum TreeCellMode: 🔗

TreeCellMode CELL_MODE_STRING = 0

单元格显示一个字符串标签,可选择带有图标。当可编辑时,可以使用LineEdit编辑文本,如果使用set_edit_multiline(),则可以使用TextEdit弹出窗口编辑文本。

TreeCellMode CELL_MODE_CHECK = 1

单元格显示一个复选框,可选择带有文本和图标。该复选框可以被按下、释放或不确定(通过set_indeterminate())。除非单元格可编辑,否则无法单击该复选框。

TreeCellMode CELL_MODE_RANGE = 2

单元格显示数值范围。可编辑时,可以使用范围滑块对其进行编辑。使用set_range()设置值,使用set_range_config()配置范围。

当您使用set_text()分配文本时,此单元格也可以在文本下拉模式下使用。用逗号分隔选项,例如"Option1, Option2,Option3"

TreeCellMode CELL_MODE_ICON = 3

单元格显示一个图标。它不能被编辑,也不能显示文本。图标始终位于单元格的中心。

TreeCellMode CELL_MODE_CUSTOM = 4

单元格显示为一个可点击的按钮。它将显示一个类似于OptionButton的箭头,但没有下拉菜单(为此您可以使用CELL_MODE_RANGE)。单击按钮会发出Tree.item_edited信号。默认情况下,按钮是平的,您可以使用set_custom_as_button()将其与StyleBox一起显示。

此模式还支持使用set_custom_draw_callback()自定义绘图。


属性说明

bool collapsed 🔗

  • void set_collapsed(value: bool)

  • bool is_collapsed()

如果true,则TreeItem折叠。


int custom_minimum_height 🔗

  • void set_custom_minimum_height(value: int)

  • int get_custom_minimum_height()

自定义最小高度。


bool disable_folding 🔗

  • void set_disable_folding(value: bool)

  • bool is_folding_disabled()

如果true,则禁用此TreeItem的折叠。


bool visible 🔗

  • void set_visible(value: bool)

  • bool is_visible()

如果true,则TreeItem可见(默认)。

请注意,如果TreeItem设置为不可见,则其子项也不会可见。


方法说明

void add_button(column: int, button: Texture2D, id: int = -1, disabled: bool = false, tooltip_text: String = "") 🔗

在列column的单元格末尾添加一个带有Texture2Dbutton的按钮。id用于标识根据Tree.button_clicked信号中的按钮,并且可以与按钮索引不同。如果未指定,则使用下一个可用索引,可以通过在此方法之前调用get_button_count()来检索该索引。可选地,按钮可以disabled并具有tooltip_text


void add_child(child: TreeItem) 🔗

将以前未带父级的TreeItem添加为此项的直接子级。child项不得是任何Tree的一部分,也不得是任何TreeItem的父级。另请参见remove_child()


void call_recursive(method: StringName, ...) vararg 🔗

递归调用实际TreeItem及其子对象的method。将参数作为逗号分隔的列表传递。


void clear_buttons() 🔗

从此项目的所有列中删除所有按钮。


void clear_custom_bg_color(column: int) 🔗

将给定列的背景颜色重置为默认值。


void clear_custom_color(column: int) 🔗

将给定列的颜色重置为默认值。


TreeItem create_child(index: int = -1) 🔗

创建一个项目并将其添加为子项目。

新项目将作为位置index插入(默认值-1表示最后一个位置),或者如果index高于子计数,它将是最后一个子项目。


void deselect(column: int) 🔗

取消选择给定的列。


void erase_button(column: int, button_index: int) 🔗

删除列column中索引button_index处的按钮。


AutoTranslateMode get_auto_translate_mode(column: int) const 🔗

返回列的自动翻译模式。


AutowrapMode get_autowrap_mode(column: int) const 🔗

返回给定column中的文本自动包装模式。默认情况下,它是TextServer.AUTOWRAP_OFF


Texture2D get_button(column: int, button_index: int) const 🔗

返回列column中索引button_index处按钮的Texture2D


int get_button_by_id(column: int, id: int) const 🔗

如果列column中有IDid的按钮,则返回按钮索引,否则返回-1。


Color get_button_color(column: int, id: int) const 🔗

返回列column中IDid按钮的颜色。如果指定的按钮不存在,则返回Color.BLACK


int get_button_count(column: int) const 🔗

返回列column中的按钮数。


int get_button_id(column: int, button_index: int) const 🔗

返回列column中索引button_index处按钮的ID。


String get_button_tooltip_text(column: int, button_index: int) const 🔗

返回列column中索引button_index处按钮的工具提示文本。


TreeCellMode get_cell_mode(column: int) const 🔗

返回列的单元格模式。


TreeItem get_child(index: int) 🔗

通过子项的index返回子项(参见get_child_count())。此方法通常用于迭代项目的所有子项。

负索引访问来自最后一个的子索引。


int get_child_count() 🔗

返回子项的数量。


Array[TreeItem] get_children() 🔗

返回对项的子项的引用数组。


Color get_custom_bg_color(column: int) const 🔗

返回列column的自定义背景颜色。


Color get_custom_color(column: int) const 🔗

返回列column的自定义颜色。


Callable get_custom_draw_callback(column: int) const 🔗

返回列column的自定义回调。


Font get_custom_font(column: int) const 🔗

返回用于在列column中绘制文本的自定义字体。


int get_custom_font_size(column: int) const 🔗

返回用于在列column中绘制文本的自定义字体大小。


bool get_expand_right(column: int) const 🔗

如果设置了expand_right,则返回true


TreeItem get_first_child() const 🔗

返回TreeItem的第一个子项。


Texture2D get_icon(column: int) const 🔗

返回给定列的图标Texture2D。如果未设置图标,则出错。


int get_icon_max_width(column: int) const 🔗

返回给定column中图标的最大允许宽度。


Color get_icon_modulate(column: int) const 🔗

返回调制列图标的Color


Texture2D get_icon_overlay(column: int) const 🔗

返回给定列的图标覆盖Texture2D


Rect2 get_icon_region(column: int) const 🔗

将图标Texture2D区域返回为Rect2


int get_index() 🔗

返回树中节点的顺序。例如,如果在第一个子项上调用,则位置为0


String get_language(column: int) const 🔗

返回项目的文本语言代码。


Variant get_metadata(column: int) const 🔗

返回使用set_metadata()为给定列设置的元数据值。


TreeItem get_next() const 🔗

返回树中的下一个兄弟TreeItem,如果没有,则返回null对象。


TreeItem get_next_in_tree(wrap: bool = false) 🔗

返回树中的下一个TreeItem(在深度优先搜索的上下文中)或null对象(如果没有)。

如果启用wrap,则该方法在对最后一个元素调用时将环绕到树中的第一个元素,否则返回null


TreeItem get_next_visible(wrap: bool = false) 🔗

返回树中的下一个可见TreeItem(在深度优先搜索的上下文中)或null对象(如果没有)。

如果启用wrap,则该方法在对最后一个可见元素调用时将环绕到树中的第一个可见元素,否则返回null


TreeItem get_parent() const 🔗

返回父TreeItem或null对象(如果没有)。


TreeItem get_prev() 🔗

返回树中的前一个兄弟TreeItem,如果没有,则返回null对象。


TreeItem get_prev_in_tree(wrap: bool = false) 🔗

返回树中的前一个TreeItem(在深度优先搜索的上下文中)或null对象(如果没有)。

如果启用了wrap,则当对第一个可见元素调用时,该方法将环绕到树中的最后一个元素,否则返回null


TreeItem get_prev_visible(wrap: bool = false) 🔗

返回树中的前一个可见兄弟TreeItem(在深度优先搜索的上下文中)或null对象(如果没有)。

如果启用wrap,则该方法在调用第一个可见元素时将环绕到树中的最后一个可见元素,否则返回null


float get_range(column: int) const 🔗

返回CELL_MODE_RANGE列的值。


Dictionary get_range_config(column: int) 🔗

返回包含给定列的范围参数的字典。键是“min”、“max”、“Step”和“expr”。


StructuredTextParser get_structured_text_bidi_override(column: int) const 🔗

返回此单元格的BiDi算法覆盖集。


Array get_structured_text_bidi_override_options(column: int) const 🔗

返回为此单元格设置的附加BiDi选项。


String get_suffix(column: int) const 🔗

获取列值之后显示的后缀字符串。


String get_text(column: int) const 🔗

返回给定列的文本。


HorizontalAlignment get_text_alignment(column: int) const 🔗

返回给定列的文本对齐方式。


TextDirection get_text_direction(column: int) const 🔗

返回项目的文本基础书写方向。


OverrunBehavior get_text_overrun_behavior(column: int) const 🔗

返回当文本超过给定column中项目的边界矩形时的剪辑行为。默认情况下,它是TextServer.OVERRUN_TRIM_ELLIPSIS


String get_tooltip_text(column: int) const 🔗

返回给定列的工具提示文本。


Tree get_tree() const 🔗

返回拥有此TreeItem的Tree


bool is_any_collapsed(only_visible: bool = false) 🔗

如果此TreeItem或其任何后代折叠,则返回true

如果only_visibletrue,则忽略不可见的TreeItems。


bool is_button_disabled(column: int, button_index: int) const 🔗

如果给定column的索引button_index处的按钮被禁用,则返回true


bool is_checked(column: int) const 🔗

如果选中给定的column,则返回true


bool is_custom_set_as_button(column: int) const 🔗

返回true如果单元格是用set_custom_as_button()制成的按钮。


bool is_edit_multiline(column: int) const 🔗

如果给定的column是多行可编辑的,则返回true


bool is_editable(column: int) 🔗

如果给定的column是可编辑的,则返回true


bool is_indeterminate(column: int) const 🔗

如果给定的column不确定,则返回true


bool is_selectable(column: int) const 🔗

如果给定的column是可选择的,则返回true


bool is_selected(column: int) 🔗

如果选择了给定的column,则返回true


bool is_visible_in_tree() const 🔗

如果visibletrue并且它的所有祖先也可见,则返回true


void move_after(item: TreeItem) 🔗

将此TreeItem移至给定item之后。

注意:您不能移动到根或移动根。


void move_before(item: TreeItem) 🔗

将此TreeItem移到给定item之前。

注意:您不能移动到根或移动根。


void propagate_check(column: int, emit_signal: bool = true) 🔗

将此项的检查状态传播给给定column的子级和父级。可以通过连接到Tree.check_propagated_to_item来处理受此方法调用影响的项目。处理受影响项目的顺序如下:调用此方法的项目、该项目的子级,最后是该项目的父级。如果emit_signalfalse,则不会发出Tree.check_propagated_to_item


void remove_child(child: TreeItem) 🔗

Tree中删除给定的子TreeItem及其所有子TreeItem。请注意,它不会从内存中释放项目,因此可以稍后重用(参见add_child())。要完全删除TreeItem,请使用Object.free()

注意:如果您想将子级从一个Tree移动到另一个Tree,那么您可以使用move_before()move_after()来代替手动删除和添加它。


void select(column: int) 🔗

选择给定的column


void set_auto_translate_mode(column: int, mode: AutoTranslateMode) 🔗

将给定列的自动翻译模式设置为mode

默认情况下,所有列都使用Item.AUTO_TRANSLATE_MODE_INHERIT,它使用与Tree本身相同的自动翻译模式。


void set_autowrap_mode(column: int, autowrap_mode: AutowrapMode) 🔗

在给定的column中设置自动包装模式。如果设置为TextServer.AUTOWRAP_OFF以外的值,则文本将被包裹在单元格的边界矩形内。


void set_button(column: int, button_index: int, button: Texture2D) 🔗

将给定列的索引button_index处的按钮Texture2D设置为button


void set_button_color(column: int, button_index: int, color: Color) 🔗

将给定列在索引button_index处的按钮颜色设置为color


void set_button_disabled(column: int, button_index: int, disabled: bool) 🔗

如果true,则禁用给定column中索引button_index处的按钮。


void set_button_tooltip_text(column: int, button_index: int, tooltip: String) 🔗

在给定column的索引button_index处设置按钮的工具提示文本。


void set_cell_mode(column: int, mode: TreeCellMode) 🔗

将给定列的单元格模式设置为mode。这决定了单元格的显示和编辑方式。有关详细信息,请参阅TreeCellMode常量。


void set_checked(column: int, checked: bool) 🔗

如果checkedtrue,则检查给定的column。清除列的不确定状态。


void set_collapsed_recursive(enable: bool) 🔗

折叠或解除此TreeItem和此物品的所有后代。


void set_custom_as_button(column: int, enable: bool) 🔗

使具有CELL_MODE_CUSTOM的单元格显示为带有StyleBox的非平面按钮。


void set_custom_bg_color(column: int, color: Color, just_outline: bool = false) 🔗

设置给定列的自定义背景颜色以及是否仅将其用作大纲。


void set_custom_color(column: int, color: Color) 🔗

设置给定列的自定义颜色。


void set_custom_draw(column: int, object: Object, callback: StringName) 🔗

已弃用: 请改用 set_custom_draw_callback()

将给定列的自定义绘制回调设置为object上的callback方法。

名为callback的方法应该接受两个参数:绘制的TreeItem及其作为Rect2的位置和大小。


void set_custom_draw_callback(column: int, callback: Callable) 🔗

设置给定列的自定义绘制回调。使用空的CallableCallable())清除自定义回调。单元格必须在CELL_MODE_CUSTOM中才能使用此功能。

callback应该接受两个参数:绘制的TreeItem及其作为Rect2的位置和大小。


void set_custom_font(column: int, font: Font) 🔗

设置用于在给定column中绘制文本的自定义字体。


void set_custom_font_size(column: int, font_size: int) 🔗

设置用于在给定column中绘制文本的自定义字体大小。


void set_edit_multiline(column: int, multiline: bool) 🔗

如果multilinetrue,则给定的column是多行可编辑的。

注意:此选项仅影响编辑列时出现的控件类型(LineEditTextEdit)。即使列不可多行编辑,您也可以使用set_text()设置多行值。


void set_editable(column: int, enabled: bool) 🔗

如果enabledtrue,则给定的column是可编辑的。


void set_expand_right(column: int, enable: bool) 🔗

如果enabletrue,则将给定的column向右展开。


void set_icon(column: int, texture: Texture2D) 🔗

设置给定单元格的图标Texture2D。如果单元格处于CELL_MODE_ICON模式,则图标显示在单元格的中心。否则,图标将显示在单元格的文本之前。CELL_MODE_RANGE不显示图标。


void set_icon_max_width(column: int, width: int) 🔗

设置给定column中图标的最大允许宽度。此限制应用于图标的默认大小和Tree.icon_max_width顶部。高度根据图标的比例进行调整。


void set_icon_modulate(column: int, modulate: Color) 🔗

使用modulate调整给定列的图标。


void set_icon_overlay(column: int, texture: Texture2D) 🔗

设置给定单元格的图标覆盖Texture2D。单元格必须处于CELL_MODE_ICON模式,并且必须设置图标。覆盖绘制在图标顶部的左下角。


void set_icon_region(column: int, region: Rect2) 🔗

设置给定列的图标的纹理区域。


void set_indeterminate(column: int, indeterminate: bool) 🔗

如果indeterminatetrue,则给定的column标记为不确定。

注意:如果从false设置true,则清除列的检查状态。


void set_language(column: int, language: String) 🔗

设置用于换行和文本整形算法的项目文本的语言代码,如果留空则使用当前语言环境。


void set_metadata(column: int, meta: Variant) 🔗

设置给定列的元数据值,稍后可以使用get_metadata()检索该值。例如,这可用于存储对原始数据的引用。


void set_range(column: int, value: float) 🔗

设置CELL_MODE_RANGE列的值。


void set_range_config(column: int, min: float, max: float, step: float, expr: bool = false) 🔗

设置列的可接受值范围。该列必须处于CELL_MODE_RANGE模式。

如果exprtrue,则编辑模式滑块将使用与Range.exp_edit


void set_selectable(column: int, selectable: bool) 🔗

如果selectabletrue,则给定的column是可选的。


void set_structured_text_bidi_override(column: int, parser: StructuredTextParser) 🔗

为结构化文本设置BiDi算法覆盖。对显示文本的单元格有效。


void set_structured_text_bidi_override_options(column: int, args: Array) 🔗

为BiDi覆盖设置其他选项。对显示文本的单元格有影响。


void set_suffix(column: int, text: String) 🔗

设置要在列值之后显示的字符串(例如,单位缩写)。


void set_text(column: int, text: String) 🔗

设置给定列的文本值。


void set_text_alignment(column: int, text_alignment: HorizontalAlignment) 🔗

设置给定列的文本对齐方式。有关可能的值,请参阅HorizontalAlignment


void set_text_direction(column: int, direction: TextDirection) 🔗

设置项目的文本基础书写方向。


void set_text_overrun_behavior(column: int, overrun_behavior: OverrunBehavior) 🔗

设置当文本超过给定column中项目的边界矩形时的剪切行为。


void set_tooltip_text(column: int, tooltip: String) 🔗

设置给定列的工具提示文本。


void uncollapse_tree() 🔗

解除显示此TreeItem所需的所有TreeItem,即所有祖先TreeItem的折叠。