TreeItem¶
继承: Object
Tree中单个项目的内部控制。
描述¶
Tree控件的单个项目。它可以包含其他TreeItem作为子项,这允许它创建层次结构。它还可以包含文本和按钮。TreeItem不是Item,它是Tree的内部。
要创建TreeItem,请使用Tree.create_item()或create_child()。要删除TreeItem,请使用Object.free()。
注意:用于按钮的ID值是32位,不像int总是64位。它们从-2147483648到2147483647。
属性¶
方法¶
void |
add_button(column: int, button: Texture2D, id: int = -1, disabled: bool = false, tooltip_text: String = "") |
void |
|
void |
call_recursive(method: StringName, ...) vararg |
void |
|
void |
clear_custom_bg_color(column: int) |
void |
clear_custom_color(column: int) |
create_child(index: int = -1) |
|
void |
|
void |
erase_button(column: int, button_index: int) |
get_auto_translate_mode(column: int) const |
|
get_autowrap_mode(column: int) const |
|
get_button(column: int, button_index: int) const |
|
get_button_by_id(column: int, id: int) const |
|
get_button_color(column: int, id: int) const |
|
get_button_count(column: int) const |
|
get_button_id(column: int, button_index: int) const |
|
get_button_tooltip_text(column: int, button_index: int) const |
|
get_cell_mode(column: int) const |
|
get_custom_bg_color(column: int) const |
|
get_custom_color(column: int) const |
|
get_custom_draw_callback(column: int) const |
|
get_custom_font(column: int) const |
|
get_custom_font_size(column: int) const |
|
get_expand_right(column: int) const |
|
get_first_child() const |
|
get_icon_max_width(column: int) const |
|
get_icon_modulate(column: int) const |
|
get_icon_overlay(column: int) const |
|
get_icon_region(column: int) const |
|
get_language(column: int) const |
|
get_metadata(column: int) const |
|
get_next() const |
|
get_next_in_tree(wrap: bool = false) |
|
get_next_visible(wrap: bool = false) |
|
get_parent() const |
|
get_prev() |
|
get_prev_in_tree(wrap: bool = false) |
|
get_prev_visible(wrap: bool = false) |
|
get_range_config(column: int) |
|
get_structured_text_bidi_override(column: int) const |
|
get_structured_text_bidi_override_options(column: int) const |
|
get_suffix(column: int) const |
|
get_text_alignment(column: int) const |
|
get_text_direction(column: int) const |
|
get_text_overrun_behavior(column: int) const |
|
get_tooltip_text(column: int) const |
|
get_tree() const |
|
is_any_collapsed(only_visible: bool = false) |
|
is_button_disabled(column: int, button_index: int) const |
|
is_checked(column: int) const |
|
is_custom_set_as_button(column: int) const |
|
is_edit_multiline(column: int) const |
|
is_editable(column: int) |
|
is_indeterminate(column: int) const |
|
is_selectable(column: int) const |
|
is_selected(column: int) |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
枚举¶
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()自定义绘图。
属性说明¶
如果true,则TreeItem折叠。
自定义最小高度。
如果true,则禁用此TreeItem的折叠。
如果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 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())。此方法通常用于迭代项目的所有子项。
负索引访问来自最后一个的子索引。
返回子项的数量。
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 🔗
返回树中节点的顺序。例如,如果在第一个子项上调用,则位置为0。
String get_language(column: int) const 🔗
返回项目的文本语言代码。
Variant get_metadata(column: int) const 🔗
返回使用set_metadata()为给定列设置的元数据值。
返回树中的下一个兄弟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或null对象(如果没有)。
返回树中的前一个兄弟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 🔗
返回给定列的工具提示文本。
返回拥有此TreeItem的Tree。
bool is_any_collapsed(only_visible: bool = false) 🔗
如果此TreeItem或其任何后代折叠,则返回true。
如果only_visible为true,则忽略不可见的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 🔗
如果visible是true并且它的所有祖先也可见,则返回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_signal是false,则不会发出Tree.check_propagated_to_item。
void remove_child(child: TreeItem) 🔗
从Tree中删除给定的子TreeItem及其所有子TreeItem。请注意,它不会从内存中释放项目,因此可以稍后重用(参见add_child())。要完全删除TreeItem,请使用Object.free()。
注意:如果您想将子级从一个Tree移动到另一个Tree,那么您可以使用move_before()或move_after()来代替手动删除和添加它。
选择给定的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) 🔗
如果checked为true,则检查给定的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) 🔗
设置给定列的自定义绘制回调。使用空的Callable(Callable())清除自定义回调。单元格必须在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) 🔗
如果multiline为true,则给定的column是多行可编辑的。
注意:此选项仅影响编辑列时出现的控件类型(LineEdit或TextEdit)。即使列不可多行编辑,您也可以使用set_text()设置多行值。
void set_editable(column: int, enabled: bool) 🔗
如果enabled为true,则给定的column是可编辑的。
void set_expand_right(column: int, enable: bool) 🔗
如果enable为true,则将给定的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) 🔗
如果indeterminate为true,则给定的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模式。
如果expr为true,则编辑模式滑块将使用与Range.exp_edit。
void set_selectable(column: int, selectable: bool) 🔗
如果selectable为true,则给定的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的折叠。