SpinBox

继承: Range < Control < CanvasItem < Node < Object

数字的输入字段。

描述

SpinBox 是一种用于输入数值的文本字段,允许输入整数和浮点数。

示例:

GDScriptC#

  1. var spin_box = SpinBox.new()
  2. add_child(spin_box)
  3. var line_edit = spin_box.get_line_edit()
  4. line_edit.context_menu_enabled = false
  5. spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT
  1. var spinBox = new SpinBox();
  2. AddChild(spinBox);
  3. var lineEdit = spinBox.GetLineEdit();
  4. lineEdit.ContextMenuEnabled = false;
  5. spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;

上面的代码会创建一个 SpinBox,禁用其中的上下文菜单,并将文本设置为右对齐。

SpinBox 的更多选项见 Range 类。

注意:**SpinBox** 的上下文菜单被禁用时,右键单击微调框的下半部分可以将取值设置最小值,右键单击上半部分可以将取值设置最大值。

注意:**SpinBox 依赖底层的 LineEdit 节点。要为 SpinBox** 的背景设置主题,请为 LineEdit 添加主题项目并进行自定义。

注意:如果你想要为底层的 LineEdit 实现拖放,可以对 get_line_edit 所返回的节点使用 Control.set_drag_forwarding

属性

HorizontalAlignment

alignment

0

float

custom_arrow_step

0.0

bool

editable

true

String

prefix

“”

bool

select_all_on_focus

false

BitField[SizeFlags]

size_flags_vertical

1 (overrides Control)

float

step

1.0 (overrides Range)

String

suffix

“”

bool

update_on_text_changed

false

方法

void

apply()

LineEdit

get_line_edit()

主题属性

Texture2D

updown


属性说明

HorizontalAlignment alignment = 0 🔗

更改底层 LineEdit 的对齐方式。


float custom_arrow_step = 0.0 🔗

  • void set_custom_arrow_step(value: float)

  • float get_custom_arrow_step()

如果不是 0,则在与 SpinBox 的箭头按钮交互时,Range.value 将始终四舍五入为 custom_arrow_step 的倍数。


bool editable = true 🔗

  • void set_editable(value: bool)

  • bool is_editable()

如果为 true,则 SpinBox 将是可编辑的。否则,它将是只读的。


String prefix = "" 🔗

SpinBox 的数值前添加指定的前缀字符串。


bool select_all_on_focus = false 🔗

  • void set_select_all_on_focus(value: bool)

  • bool is_select_all_on_focus()

如果为 true,则该 SpinBox 会在 LineEdit 获得焦点时选中整个文本。点击上下箭头不会触发这种行为。


String suffix = "" 🔗

SpinBox 的数值后添加指定的后缀字符串。


bool update_on_text_changed = false 🔗

  • void set_update_on_text_changed(value: bool)

  • bool get_update_on_text_changed()

LineEdit 的文本发生变化而不是被提交时,设置这个 SpinBoxRange 的值。见 LineEdit.text_changedLineEdit.text_submitted


方法说明

void apply() 🔗

应用此 SpinBox 的当前值。


LineEdit get_line_edit() 🔗

返回这个 SpinBox 中的 LineEdit 实例。你可以用它来访问 LineEdit 的属性和方法。

警告:这是一个必要的内部节点,移除和释放它可能会导致崩溃。如果你想隐藏它或它的任何子节点,请使用其 CanvasItem.visible 属性。


主题属性说明

Texture2D updown 🔗

为该 SpinBox 的上下箭头设置自定义的 Texture2D