RichTextLabel¶
用于显示可以包含不同字体样式、图像和基本格式的文本的控件。
描述¶
一种用于显示文本的控件,该文本可包含自定义字体、图像和基本格式。RichTextLabel 将这些内容作为内部标签栈进行管理。它还能根据给定的宽度/高度进行自适应调整。
注意:newline()、push_paragraph()、"\n"、"\r\n"、p标签以及对齐标签会开始一个新段落。每个段落会在其自身的双向文本环境中独立处理。如果你想在段落内强制换行,可以使用任何其他换行字符,例如换页符(U+000C)、下一行符(U+0085)、行分隔符(U+2028)。
注意:对 text 的赋值会清空标签栈,并根据该属性的内容重新构建。对 text 所做的任何编辑都将清除之前通过其他手动方式(如 append_text() 以及 push_* / pop() 方法)所做的编辑。
注意:RichTextLabel 不支持嵌套的 BBCode 标签。例如,不要使用 [b]bold[i]bold italic[/b]italic[/i],而应使用 [b]bold[i]bold italic[/i][/b][i]italic[/i]。
注意:push_*/pop_* 函数不会影响 BBCode。
s注意:与 Label 不同,RichTextLabel 没有用于将文本水平居中对齐的 属性。相反,启用 bbcode_enabled 并将文本用 [center] 标签包围,如下所示:[center]Example[/center]。目前也没有内置的垂直对齐文本的方法,但可以通过依赖锚点/容器以及 fit_content 属性来模拟实现
属性¶
|
||
|
||
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
BitField[JustificationFlag] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
void |
add_image(image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), key: Variant = null, pad: bool = false, tooltip: String = "", size_in_percent: bool = false) |
void |
|
void |
append_text(bbcode: String) |
void |
clear() |
void |
deselect() |
get_character_line(character: int) |
|
get_character_paragraph(character: int) |
|
get_content_height() const |
|
get_content_width() const |
|
get_line_count() const |
|
get_line_offset(line: int) |
|
get_line_range(line: int) |
|
get_menu() const |
|
get_paragraph_count() const |
|
get_paragraph_offset(paragraph: int) |
|
get_parsed_text() const |
|
get_selected_text() const |
|
get_selection_from() const |
|
get_selection_line_offset() const |
|
get_selection_to() const |
|
get_total_character_count() const |
|
get_visible_line_count() const |
|
get_visible_paragraph_count() const |
|
void |
install_effect(effect: Variant) |
invalidate_paragraph(paragraph: int) |
|
is_finished() const |
|
is_menu_visible() const |
|
is_ready() const |
|
void |
menu_option(option: int) |
void |
newline() |
void |
parse_bbcode(bbcode: String) |
parse_expressions_for_values(expressions: PackedStringArray) |
|
void |
pop() |
void |
pop_all() |
void |
|
void |
push_bgcolor(bgcolor: Color) |
void |
|
void |
|
void |
|
void |
push_color(color: Color) |
void |
|
void |
push_customfx(effect: RichTextEffect, env: Dictionary) |
void |
push_dropcap(string: String, font: Font, size: int, dropcap_margins: Rect2 = Rect2(0, 0, 0, 0), color: Color = Color(1, 1, 1, 1), outline_size: int = 0, outline_color: Color = Color(0, 0, 0, 0)) |
void |
push_fgcolor(fgcolor: Color) |
void |
|
void |
push_font_size(font_size: int) |
void |
|
void |
push_indent(level: int) |
void |
|
void |
push_language(language: String) |
void |
push_list(level: int, type: ListType, capitalize: bool, bullet: String = "•") |
void |
push_meta(data: Variant, underline_mode: MetaUnderline = 1, tooltip: String = "") |
void |
|
void |
|
void |
push_outline_color(color: Color) |
void |
push_outline_size(outline_size: int) |
void |
push_paragraph(alignment: HorizontalAlignment, base_direction: TextDirection = 0, language: String = "", st_parser: StructuredTextParser = 0, justification_flags: BitField[JustificationFlag] = 163, tab_stops: PackedFloat32Array = PackedFloat32Array()) |
void |
|
void |
push_table(columns: int, inline_align: InlineAlignment = 0, align_to_row: int = -1) |
void |
|
remove_paragraph(paragraph: int, no_invalidate: bool = false) |
|
void |
scroll_to_line(line: int) |
void |
scroll_to_paragraph(paragraph: int) |
void |
|
void |
|
void |
set_cell_border_color(color: Color) |
void |
set_cell_padding(padding: Rect2) |
void |
set_cell_row_background_color(odd_row_bg: Color, even_row_bg: Color) |
void |
set_cell_size_override(min_size: Vector2, max_size: Vector2) |
void |
set_table_column_expand(column: int, expand: bool, ratio: int = 1, shrink: bool = true) |
void |
update_image(key: Variant, mask: BitField[ImageUpdateMask], image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), pad: bool = false, tooltip: String = "", size_in_percent: bool = false) |
主题属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
信号¶
finished() 🔗
在文档完全加载时触发。
注意:这可能发生在处理文本以进行绘图之前。在此信号之后第一次绘制文档之前,滚动值可能无效。
当用户点击元(URL)标签之间的内容时触发。如果元是在BBCode中定义的,例如[url={"key": "value"}]文本[/url],那么此信号的参数将始终是String类型。如果需要特定类型或对象,必须使用push_meta()方法手动将数据插入标签堆栈。或者,你可以根据String输入的内容将其转换为所需的类型(例如对其调用JSON.parse())。例如,以下方法可以连接到meta_clicked,以便使用用户的默认网络浏览器打开点击的URL:
# 此前提是:已通过信号连接对话框,将 RichTextLabel 的 `meta_clicked` 信号连接到了下方的函数.
func _richtextlabel_on_meta_clicked(meta):
# `meta` 为 Variant 类型,因此需将其转换为 String 类型,以避免运行时脚本错误.
OS.shell_open(str(meta))
meta_hover_ended(meta: Variant) 🔗
当鼠标退出元标记时触发。
meta_hover_started(meta: Variant) 🔗
当鼠标输入元标记时触发。
枚举¶
enum ListType: 🔗
ListType LIST_NUMBERS = 0
每个列表项都有一个数字标记。
ListType LIST_LETTERS = 1
每个列表项都有一个字母标记。
ListType LIST_ROMAN = 2
每个列表项都有一个罗马数字标记。
ListType LIST_DOTS = 3
每个列表项都有一个填充的圆圈标记。
复制选定的文本。
选择整个RichTextLabel文本。
表示MenuItems枚举的大小。
enum MetaUnderline: 🔗
MetaUnderline META_UNDERLINE_NEVER = 0
元标记不显示下划线,即使meta_underlined是true。
MetaUnderline META_UNDERLINE_ALWAYS = 1
如果meta_underlined为true,则元标记始终显示下划线。
MetaUnderline META_UNDERLINE_ON_HOVER = 2
如果meta_underlined为true,则当鼠标光标在元标记上时,元标记会显示下划线。
flags ImageUpdateMask: 🔗
ImageUpdateMask UPDATE_TEXTURE = 1
如果设置了该位,update_image()会更改图像纹理。
ImageUpdateMask UPDATE_SIZE = 2
如果设置了该位,update_image()将更改图像大小。
ImageUpdateMask UPDATE_COLOR = 4
如果设置了该位,update_image()改变图像颜色。
ImageUpdateMask UPDATE_ALIGNMENT = 8
如果设置了该位,update_image()将更改图像内联对齐方式。
ImageUpdateMask UPDATE_REGION = 16
如果设置了该位,update_image()改变图像纹理区域。
ImageUpdateMask UPDATE_PAD = 32
如果设置了该位,update_image()将更改图像填充。
ImageUpdateMask UPDATE_TOOLTIP = 64
如果设置了该位,update_image()将更改图像工具提示。
ImageUpdateMask UPDATE_WIDTH_IN_PERCENT = 128
如果设置了该位,update_image()将图像宽度从/更改为百分比。
属性说明¶
AutowrapMode autowrap_mode = 3 🔗
void set_autowrap_mode(value: AutowrapMode)
AutowrapMode get_autowrap_mode()
如果设置为TextServer.AUTOWRAP_OFF以外的值,则文本将被包裹在节点的边界矩形内。要查看每个模式的行为方式,请参阅AutowrapMode。
如果true,则标签使用BBCode格式。
注意:这只影响text的内容,不影响标签堆栈。
如果true,右键单击将显示上下文菜单。
The currently installed custom effects. This is an array of RichTextEffects.
To add a custom effect, it's more convenient to use install_effect().
bool deselect_on_focus_loss_enabled = true 🔗
如果true,则当焦点丢失时,所选文本将被取消选择。
bool drag_and_drop_selection_enabled = true 🔗
如果true,则允许拖放选定的文本。
如果true,则标签的最小大小将自动更新以适应其内容,匹配Label的行为。
如果true,则标签会在提示标签下划线,例如[hint=description]{text}[/hint]。
HorizontalAlignment horizontal_alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
控制文本的水平对齐方式。支持左、中、右和填充或对齐。将其设置为HorizontalAlignment常量之一。
BitField[JustificationFlag] justification_flags = 163 🔗
void set_justification_flags(value: BitField[JustificationFlag])
BitField[JustificationFlag] get_justification_flags()
行填充对齐规则。有关详细信息,请参阅JustificationFlag。
用于换行和文本整形算法的语言代码,如果留空则使用当前语言环境。
如果true,则标签下划线为元标记,例如[url]{text}[/url]。如果meta_clicked连接到函数,则单击这些标签可以调用函数。
int progress_bar_delay = 1000 🔗
显示加载进度条的延迟,以毫秒为单位。设置为-1以完全禁用进度条。
注意:仅当启用threaded时才会显示进度条。
如果true,滚动条是可见的。将其设置为false不会完全阻止滚动。参见scroll_to_line()。
bool scroll_following = false 🔗
如果true,则窗口向下滚动以自动显示新内容。
bool selection_enabled = false 🔗
如果true,则标签允许选择文本。
bool shortcut_keys_enabled = true 🔗
如果true,则启用上下文菜单项的快捷键,即使上下文菜单被禁用。
StructuredTextParser structured_text_bidi_override = 0 🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
为结构化文本设置BiDi算法覆盖。
Array structured_text_bidi_override_options = [] 🔗
void set_structured_text_bidi_override_options(value: Array)
Array get_structured_text_bidi_override_options()
为BiDi覆盖设置附加选项。
与单个制表符长度相关联的空格数。不影响文本标签中的\t,仅影响缩进标签。
PackedFloat32Array tab_stops = PackedFloat32Array() 🔗
void set_tab_stops(value: PackedFloat32Array)
PackedFloat32Array get_tab_stops()
将文本与给定的制表符对齐。
Note: The returned array is copied and any changes to it will not update the original property value. See PackedFloat32Array for more details.
BBCode格式的标签文本。不代表对内部标签堆栈的手动修改。编辑时删除其他方法所做的更改。
注意:如果bbcode_enabled为true,则不建议将+=运算符与text一起使用(例如text+="some string"),因为它会替换整个文本并可能导致速度变慢。它还会擦除使用push_*方法添加到堆栈中的所有BBCode。使用append_text()来添加文本,除非您绝对需要关闭在早期方法调用中打开的标签。
TextDirection text_direction = 0 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
基本文本写作方向。
如果true,则文本处理在后台线程中完成。
VerticalAlignment vertical_alignment = 0 🔗
void set_vertical_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_alignment()
控制文本的垂直对齐方式。支持顶部、中心、底部和填充。将其设置为VerticalAlignment常量之一。
要显示的字符数。如果设置为-1,则显示所有字符。这在对话框中出现的文本进行动画处理时很有用。
注意:设置此属性会相应地更新visible_ratio。
VisibleCharactersBehavior visible_characters_behavior = 0 🔗
void set_visible_characters_behavior(value: VisibleCharactersBehavior)
VisibleCharactersBehavior get_visible_characters_behavior()
设置visible_characters或visible_ratio时的剪辑行为。有关详细信息,请参阅VisibleCharactersBehavior。
要显示的字符的比例,相对于字符总数(参见get_total_character_count())。如果设置为1.0,则显示所有字符。如果设置为0.5,则仅显示一半字符。这在对话框中出现的文本进行动画设置时非常有用。
注意:设置此属性会相应地更新visible_characters。
方法说明¶
void add_image(image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), key: Variant = null, pad: bool = false, tooltip: String = "", size_in_percent: bool = false) 🔗
将图像的开始和结束标记添加到标记堆栈,可选地提供width和height来调整图像大小,提供color来为图像着色,以及提供region以仅使用图像的一部分。
如果width或height设置为0,将调整图像大小以保持原始长宽比。
如果未设置width和height,但设置了region,则将使用区域的rect。
key是可选标识符,可用于通过update_image()修改图像。
如果设置了pad,并且图像小于width和height指定的大小,则添加图像填充以匹配大小而不是放大。
如果设置了size_in_percent,则width和height值是控件宽度的百分比,而不是像素。
将原始的非BBCode解析文本添加到标记堆栈。
void append_text(bbcode: String) 🔗
解析bbcode并根据需要将标签添加到标签堆栈中。
注意:使用此方法,您无法关闭在以前的append_text()调用中打开的标签。这样做是为了提高性能,尤其是在更新大型RichTextLabels时,因为每次重建整个BBCode会更慢。如果您绝对需要在未来的方法调用中关闭标签,请附加text而不是使用append_text()。
void clear() 🔗
清除标签堆栈,导致标签不显示任何内容。
注意:此方法不影响text,如果重新绘制标签,其内容将再次显示。但是,将text设置为空String也会清除堆栈。
void deselect() 🔗
清除当前选择。
int get_character_line(character: int) 🔗
返回提供的字符位置的行号。行号和字符号都是零索引的。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
int get_character_paragraph(character: int) 🔗
返回提供的字符位置的段落号。段落号和字符号都是零索引的。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
int get_content_height() const 🔗
返回内容的高度。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
int get_content_width() const 🔗
返回内容的宽度。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
返回文本中的总行数。换行文本计为多行。
注意:如果visible_characters_behavior设置为TextServer.VC_CHARS_BEFORE_SHAPING,则仅计算可见的换行。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
float get_line_offset(line: int) 🔗
返回在提供的索引处找到的行的垂直偏移量。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
Vector2i get_line_range(line: int) 🔗
返回给定line的第一个和最后一个可见字符的索引,作为Vector2i。
注意:如果visible_characters_behavior设置为TextServer.VC_CHARS_BEFORE_SHAPING,则仅计算可见的换行。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
返回此 RichTextLabel 的 PopupMenu。默认情况下,在 RichTextLabel 上单击鼠标右键时会显示此菜单。
你可以添加自定义菜单项或删除标准菜单项。确保你的 ID 不会与标准 ID 冲突(请参阅 MenuItems)。例如:
func _ready():
var menu = get_menu()
# 移除 “全选(Select All)” 项.
menu.remove_item(MENU_SELECT_ALL)
# 添加自定义项.
menu.add_separator()
menu.add_item("Duplicate Text", MENU_MAX + 1)
# 连接回调函数.
menu.id_pressed.connect(_on_item_pressed)
func _on_item_pressed(id):
if id == MENU_MAX + 1:
add_text("\n" + get_parsed_text())
public override void _Ready()
{
var menu = GetMenu();
// 移除 “全选(Select All)” 项.
menu.RemoveItem(RichTextLabel.MenuItems.SelectAll);
// 添加自定义项.
menu.AddSeparator();
menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1);
// 添加事件处理器.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == TextEdit.MenuItems.Max + 1)
{
AddText("\n" + GetParsedText());
}
}
警告: 这是一个必需的内部节点,移除并释放它可能会导致崩溃。如果你希望隐藏它或其任何子节点,请使用它们的 Window.visible 属性
int get_paragraph_count() const 🔗
返回段落的总数(标签堆栈的文本标签中的换行符或p标签)。将包装文本视为一个段落。
float get_paragraph_offset(paragraph: int) 🔗
返回在提供的索引处找到的段落的垂直偏移量。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
String get_parsed_text() const 🔗
返回没有BBCode标记的文本。
String get_selected_text() const 🔗
返回当前选择文本。不包括BBCodes。
int get_selection_from() const 🔗
如果选择处于活动状态,则返回当前选择的第一个字符索引,否则返回-1。不包括BBCodes。
float get_selection_line_offset() const 🔗
如果选择处于活动状态,则返回当前选择的垂直线偏移量,否则返回-1.0。
int get_selection_to() const 🔗
如果选择处于活动状态,则返回当前选择的最后一个字符索引,否则返回-1。不包括BBCodes。
int get_total_character_count() const 🔗
返回文本标签中的字符总数。不包括BBCodes。
VScrollBar get_v_scroll_bar() 🔗
返回垂直滚动条。
警告:这是一个必需的内部节点,删除和释放它可能会导致崩溃。
int get_visible_line_count() const 🔗
返回可见行数。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
int get_visible_paragraph_count() const 🔗
返回可见段落的数量。如果段落中至少有一行可见,则该段落被视为可见。
注意:如果启用了threaded,则此方法返回文档加载部分的值。使用is_finished()或finished来确定文档是否已完全加载。
void install_effect(effect: Variant) 🔗
安装一个自定义效果。这也可以通过 custom_effects 属性在检视面板中完成。effect 应该是一个有效的 RichTextEffect。
Example:以下脚本继承自 RichTextEffect:
# effect.s3
class_name MyCustomEffect
extends RichTextEffect
var bbcode = "my_custom_effect"
# ...
上述效果可以通过脚本安装在RichTextLabel中:
# rich_text_label.s3
extends RichTextLabel
func _ready():
install_effect(MyCustomEffect.new())
# 或者,如果在继承 RichTextEffect 的脚本中不使用 `class_name` :
install_effect(preload("res://effect.s3").new())
bool invalidate_paragraph(paragraph: int) 🔗
使paragraph和所有后续段落缓存无效。
如果启用了threaded,如果后台线程已完成文本处理,则返回true,否则始终返回true。
返回菜单是否可见。使用this而不是get_menu()。可见来提高性能(因此避免创建菜单)。
已弃用: 请改用 is_finished()。
如果启用了threaded,如果后台线程已完成文本处理,则返回true,否则始终返回true。
执行MenuItems枚举中定义的给定操作。
void newline() 🔗
将换行符添加到标记堆栈。
void parse_bbcode(bbcode: String) 🔗
append_text()的赋值版本。清除标记堆栈并插入新内容。
Dictionary parse_expressions_for_values(expressions: PackedStringArray) 🔗
将BBCode参数expressions解析为字典。
void pop() 🔗
终止当前标签。在push_*方法之后使用手动关闭BBCodes。不需要遵循add_*方法。
void pop_all() 🔗
终止push_*方法打开的所有标签。
void pop_context() 🔗
终止上次push_context()调用后打开的标记(包括上下文标记),如果堆栈上没有上下文标记,则终止所有标记。
void push_bgcolor(bgcolor: Color) 🔗
将[bgcolor]标签添加到标签堆栈。
void push_bold() 🔗
将带有粗体字体的[fon]标签添加到标签堆栈。如果当前不在[i]标签中,这与添加[b]标签相同。
void push_bold_italics() 🔗
将带有粗体斜体字体的[fon]标签添加到标签堆栈。
void push_cell() 🔗
将[cell]标记添加到标记堆栈。必须在[table]标记内。有关详细信息,请参阅push_table()。使用set_table_column_expand()设置列扩展比,set_cell_border_color()设置单元格边框,set_cell_row_background_color()设置单元格背景,set_cell_size_override()覆盖单元格大小,以及set_cell_padding()设置填充。
void push_color(color: Color) 🔗
将[color]标签添加到标签堆栈。
void push_context() 🔗
将上下文标记添加到标记堆栈。请参见pop_context()。
void push_customfx(effect: RichTextEffect, env: Dictionary) 🔗
将自定义效果标签添加到标签堆栈中。效果不需要在custom_effects中。环境直接传递给效果。
void push_dropcap(string: String, font: Font, size: int, dropcap_margins: Rect2 = Rect2(0, 0, 0, 0), color: Color = Color(1, 1, 1, 1), outline_size: int = 0, outline_color: Color = Color(0, 0, 0, 0)) 🔗
将[dropcap]标记添加到标记堆栈。Drop hat(大写字母)是段落开头的装饰元素,大于文本的其余部分。
void push_fgcolor(fgcolor: Color) 🔗
将[fgcolor]标签添加到标签堆栈。
void push_font(font: Font, font_size: int = 0) 🔗
将[fon]标签添加到标签堆栈。在其持续时间内覆盖默认字体。
将0传递给font_size将使用现有的默认字体大小。
void push_font_size(font_size: int) 🔗
将[font_size]标记添加到标记堆栈。在其持续时间内覆盖默认字体大小。
void push_hint(description: String) 🔗
将[hint]标签添加到标签堆栈。与BBCode[hint=something]{text}[/hint]相同。
void push_indent(level: int) 🔗
将[indent]标记添加到标记堆栈。将level乘以当前tab_size以确定新的边距长度。
void push_italics() 🔗
将带有斜体字体的[fon]标签添加到标签堆栈。如果当前不在[b]标签中,这与添加[i]标签相同。
void push_language(language: String) 🔗
添加用于文本整形算法和Open-Type字体功能的语言代码。
void push_list(level: int, type: ListType, capitalize: bool, bullet: String = "•") 🔗
将[ol]或[ul]标记添加到标记堆栈。将level乘以当前tab_size以确定新的边距长度。
void push_meta(data: Variant, underline_mode: MetaUnderline = 1, tooltip: String = "") 🔗
将元标记添加到标记堆栈。类似于BBCode[url=something]{text}[/url],但支持非String元数据类型。
如果meta_underlined为true,则元标记显示下划线。可以使用underline_mode自定义此行为。
注意:元标记在单击时默认不执行任何操作。要分配单击时的行为,请将meta_clicked连接到单击元标记时调用的函数。
void push_mono() 🔗
将具有等宽字体的[fon]标签添加到标签堆栈。
void push_normal() 🔗
将具有普通字体的[fon]标签添加到标签堆栈。
void push_outline_color(color: Color) 🔗
将[outline_color]标记添加到标记堆栈。为其持续时间添加文本大纲。
void push_outline_size(outline_size: int) 🔗
将[outline_size]标记添加到标记堆栈。在其持续时间内覆盖默认文本大纲大小。
void push_paragraph(alignment: HorizontalAlignment, base_direction: TextDirection = 0, language: String = "", st_parser: StructuredTextParser = 0, justification_flags: BitField[JustificationFlag] = 163, tab_stops: PackedFloat32Array = PackedFloat32Array()) 🔗
将[p]标签添加到标签堆栈。
void push_strikethrough() 🔗
将[s]标记添加到标记堆栈。
void push_table(columns: int, inline_align: InlineAlignment = 0, align_to_row: int = -1) 🔗
将[table=lie,inline_align]标记添加到标记堆栈。使用set_table_column_expand()设置列扩展比。使用push_cell()添加单元格。
void push_underline() 🔗
将[u]标签添加到标签堆栈。
bool remove_paragraph(paragraph: int, no_invalidate: bool = false) 🔗
从标签中删除一段内容。如果段落存在,则返回true。
paragraph参数是要删除的段落的索引,它可以取区间[0,get_paragraph_count()-1]中的值。
如果no_invalidate设置为true,则后续段落的缓存不会无效。如果删除的段落是完全自包含的(没有未关闭的标签),或者此调用是复杂编辑操作的一部分,并且invalidate_paragraph()将在操作结束时调用,则使用它来更快地更新。
void scroll_to_line(line: int) 🔗
滚动窗口的顶部行以匹配line。
void scroll_to_paragraph(paragraph: int) 🔗
滚动窗口的顶部行以匹配paragraph的第一行。
void scroll_to_selection() 🔗
滚动到当前选择的开头。
void select_all() 🔗
选择所有文本。
如果selection_enabled为false,则不会发生选择。
void set_cell_border_color(color: Color) 🔗
设置表格单元格边框的颜色。
void set_cell_padding(padding: Rect2) 🔗
设置表格单元格的内部填充。
void set_cell_row_background_color(odd_row_bg: Color, even_row_bg: Color) 🔗
设置表格单元格的颜色。可以指定交替行的单独颜色。
void set_cell_size_override(min_size: Vector2, max_size: Vector2) 🔗
设置表格单元格的最小和最大大小覆盖。
void set_table_column_expand(column: int, expand: bool, ratio: int = 1, shrink: bool = true) 🔗
编辑选定列的展开选项。如果expand为true,则该列按其展开比率与其他列的比率成比例展开。
例如,比率为3和4的2列加上可用宽度为70像素将分别扩展30和40像素。
如果expand为false,则该列不会对总比率做出贡献。
void update_image(key: Variant, mask: BitField[ImageUpdateMask], image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), pad: bool = false, tooltip: String = "", size_in_percent: bool = false) 🔗
使用keykey更新现有图像。仅更新由mask位指定的属性。请参阅add_image()。
主题属性说明¶
Color default_color = Color(1, 1, 1, 1) 🔗
默认文本颜色。
Color font_outline_color = Color(0, 0, 0, 1) 🔗
文本大纲的默认色调。
Color font_selected_color = Color(0, 0, 0, 0) 🔗
选定文本的颜色,当selection_enabled为true时使用。如果等于Color(0,0,0,0),它将被忽略。
Color font_shadow_color = Color(0, 0, 0, 0) 🔗
字体阴影的颜色。
Color selection_color = Color(0.1, 0.1, 1, 0.8) 🔗
选择框的颜色。
Color table_border = Color(0, 0, 0, 0) 🔗
默认单元格边框颜色。
Color table_even_row_bg = Color(0, 0, 0, 0) 🔗
偶数行的默认背景颜色。
Color table_odd_row_bg = Color(0, 0, 0, 0) 🔗
奇数行的默认背景颜色。
行间距增加(以像素为单位),行间距增加到行下降。这个值可以是负数。
文本大纲的大小。
注意:如果使用启用了FontFile.multichannel_signed_distance_field的字体,则其FontFile.msdf_pixel_range必须设置为至少两倍outline_size的值才能使轮廓渲染看起来正确。否则,轮廓可能会比预期的更早被切断。
字体阴影的水平偏移量。
字体阴影的垂直偏移量。
阴影轮廓的大小。
表中元素的水平分离。
表中元素的垂直分隔。
int text_highlight_h_padding = 3 🔗
[fgcolor]和[bgcolor]标签绘制的框周围的水平填充。这不会影响文本选择的外观。
int text_highlight_v_padding = 3 🔗
[fgcolor]和[bgcolor]标签绘制的框周围的垂直填充。这不会影响文本选择的外观。
用于粗体文本的字体。
用于粗体斜体文本的字体。
斜体文本使用的字体。
用于等宽文本的字体。
默认文本字体。
用于粗体文本的字体大小。
粗体斜体文本使用的字体大小。
斜体文本使用的字体大小。
用于等宽文本的字体大小。
默认文本字体大小。
RichTextLabel聚焦时使用的背景。focusStyleBox显示在底座StyleBox的上方,因此应使用部分透明的StyleBox来确保底座StyleBox保持可见。表示轮廓或下划线的StyleBox可以很好地用于此目的。要禁用焦点视觉效果,请分配StyleBoxEmpty资源。请注意,禁用焦点视觉效果会损害键盘/控制器导航可用性,因此出于可访问性原因不建议这样做。
RichTextLabel的正常背景。