Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

SpinBox

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

数字的输入字段。

描述

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

示例:

var spin_box = SpinBox.new()
add_child(spin_box)
var line_edit = spin_box.get_line_edit()
line_edit.context_menu_enabled = false
spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_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 ( float value )

  • float get_custom_arrow_step ( )

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


bool editable = true

  • void set_editable ( bool value )

  • bool is_editable ( )

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


String prefix = ""

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


bool select_all_on_focus = false

  • void set_select_all_on_focus ( bool value )

  • bool is_select_all_on_focus ( )

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


String suffix = ""

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


bool update_on_text_changed = false

  • void set_update_on_text_changed ( bool value )

  • 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