Range

继承: Control < Item < Object

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

表示范围内数字的控件的抽象基类。

描述

Range是一个抽象基类,用于表示范围内的数字,使用配置的steppage大小。有关使用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(new_value: float) virtual

void

set_value_no_signal(value: float)

void

share(with: Item)

void

unshare()


信号

changed() 🔗

min_valuemax_valuepagestep更改时发出。


value_changed(value: float) 🔗

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

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


属性说明

bool allow_greater = false 🔗

  • void set_allow_greater(value: bool)

  • bool is_greater_allowed()

如果true,则value可能大于max_value


bool allow_lesser = false 🔗

  • void set_allow_lesser(value: bool)

  • bool is_lesser_allowed()

如果true,则value可能小于min_value


bool exp_edit = false 🔗

  • void set_exp_ratio(value: bool)

  • 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 🔗

页面大小。主要用于ScrollBarScrollBar的抓取器长度是ScrollBar的大小乘以pagemin_valuemax_value之间的差异。


float ratio 🔗

  • void set_as_ratio(value: float)

  • float get_as_ratio()

映射在0和1之间的值。


bool rounded = false 🔗

  • void set_use_rounded_values(value: bool)

  • bool is_using_rounded_values()

如果true,则value将始终四舍五入到最接近的整数。


float step = 0.01 🔗

如果大于0,value将始终四舍五入到此属性值的倍数。如果rounded也是true,则value将首先四舍五入到此属性值的倍数,然后四舍五入到最接近的整数。


float value = 0.0 🔗

范围的当前值。更改此属性(甚至通过代码)将触发value_changed信号。如果要避免它,请使用set_value_no_signal()


方法说明

void _value_changed(new_value: float) virtual 🔗

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


void set_value_no_signal(value: float) 🔗

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


void share(with: Item) 🔗

将两个Range与之前与它们中的任何一个分组的任何范围绑定在一起。当范围的任何成员变量发生变化时,它将与其组中的所有其他范围共享新值。


void unshare() 🔗

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