Up to date

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

Range

继承: Control < CanvasItem < Node < Object

派生: EditorSpinSlider, ProgressBar, ScrollBar, Slider, SpinBox, TextureProgressBar

代表特定范围内数字的控件的抽象基类。

描述

Range 是代表特定范围内数字的控件的抽象基类,能够对步长 step 和分页大小 page 进行配置。使用 Range 的高阶节点示例请参考 ScrollBarSlider

属性

bool

allow_greater

false

bool

allow_lesser

false

bool

exp_edit

false

float

max_value

100.0

float

min_value

0.0

float

page

0.0

float

ratio

bool

rounded

false

BitField<SizeFlags>

size_flags_vertical

0 (overrides Control)

float

step

0.01

float

value

0.0

方法

void

_value_changed ( float new_value ) virtual

void

set_value_no_signal ( float value )

void

share ( Node with )

void

unshare ( )


信号

changed ( )

min_valuemax_valuepagestep 改变时释放信号。


value_changed ( float value )

value 更改时发出。在 Slider 上使用时,会在拖动时连续调用(可能是每一帧)。如果在连接到 value_changed 的函数中执行昂贵的操作,请考虑使用去除抖动 Timer 来减少调用该函数的频率。

注意:LineEdit.text_changed 等信号不同,当直接通过代码设置 value 时,value_changed 仍会发出。


属性说明

bool allow_greater = false

  • void set_allow_greater ( bool value )

  • bool is_greater_allowed ( )

如果为 truevalue 可能大于 max_value


bool allow_lesser = false

  • void set_allow_lesser ( bool value )

  • bool is_lesser_allowed ( )

如果为 truevalue 可能小于 min_value


bool exp_edit = false

  • void set_exp_ratio ( bool value )

  • bool is_ratio_exp ( )

如果为 true,并且 min_value 大于 0,value 将以指数方式而不是线性方式表示。


float max_value = 100.0

最大值。如果 value 大于 max_value,则会被范围限制。


float min_value = 0.0

最小值。如果 value 小于 min_value,则会被范围限制。


float page = 0.0

  • void set_page ( float value )

  • float get_page ( )

页面大小。主要用于 ScrollBar。ScrollBar 的长度是它的尺寸乘以 page 超过 min_valuemax_value 之间的差值。


float ratio

  • void set_as_ratio ( float value )

  • float get_as_ratio ( )

该值在 0 和 1 之间进行映射。


bool rounded = false

  • void set_use_rounded_values ( bool value )

  • bool is_using_rounded_values ( )

如果为 truevalue 将始终四舍五入到最接近的整数。


float step = 0.01

  • void set_step ( float value )

  • float get_step ( )

如果大于 0,value 将总是被四舍五入为这个属性的倍数。如果 rounded 也是 truevalue 将首先被四舍五入为这个属性的倍数,然后舍入为最近的整数。


float value = 0.0

  • void set_value ( float value )

  • float get_value ( )

Range 的当前值。更改这个属性(即便是通过代码修改的)会触发 value_changed 信号。如果你想避免触发信号,请使用 set_value_no_signal


方法说明

void _value_changed ( float new_value ) virtual

Range 的值发生更改时调用(条件与 value_changed 相同)。


void set_value_no_signal ( float value )

Range 的当前值设置为指定的 value 而不发出 value_changed 信号。


void share ( Node with )

将两个 Range 绑定,之前已与两者之中的任何一个组合的 Range 也会被绑定在一起。其中任何一个 Range 的成员变量改变时,它将与它的组中的所有其他 Range 共享新值。


void unshare ( )

使该 Range 停止与任何其他 Range 共享其成员变量。