BaseButton

继承: Control < CanvasItem < Node < Object

派生: Button, LinkButton, TextureButton

GUI 按钮的抽象基类。

描述

BaseButton 是 GUI 按钮的抽象基类。本身不显示任何东西。

属性

ActionMode

action_mode

1

ButtonGroup

button_group

BitField[MouseButtonMask]

button_mask

1

bool

button_pressed

false

bool

disabled

false

FocusMode

focus_mode

2 (overrides Control)

bool

keep_pressed_outside

false

Shortcut

shortcut

bool

shortcut_feedback

true

bool

shortcut_in_tooltip

true

bool

toggle_mode

false

方法

void

_pressed() virtual

void

_toggled(toggled_on: bool) virtual

DrawMode

get_draw_mode() const

bool

is_hovered() const

void

set_pressed_no_signal(pressed: bool)


信号

button_down() 🔗

当按钮开始被按下时发出。


button_up() 🔗

当按钮停止按下时发出。


pressed() 🔗

当按钮被切换或按下时发出。如果 action_modeACTION_MODE_BUTTON_PRESS,则在 button_down 时发出,否则当 button_up 时发出。

如果需要知道按钮的按下状态(并且 toggle_mode 处于活动状态),请改用 toggled


toggled(toggled_on: bool) 🔗

当按钮刚刚在按下和正常状态之间切换时发出(仅当 toggle_mode 处于活动状态时)。新状态包含在 toggled_on 参数中。


枚举

enum DrawMode: 🔗

DrawMode DRAW_NORMAL = 0

按钮的正常状态(即未按下、未悬停、未切换和启用)。

DrawMode DRAW_PRESSED = 1

按钮被按下的状态。

DrawMode DRAW_HOVER = 2

按钮的状态为悬停。

DrawMode DRAW_DISABLED = 3

按钮的状态为禁用。

DrawMode DRAW_HOVER_PRESSED = 4

按钮的状态既是悬停的,也是按下的。


enum ActionMode: 🔗

ActionMode ACTION_MODE_BUTTON_PRESS = 0

只需要按一下就可以认为按钮被点击了。

ActionMode ACTION_MODE_BUTTON_RELEASE = 1

要求按下后再释放,才算点击了按钮。


属性说明

ActionMode action_mode = 1 🔗

确定按钮何时被认为被点击,是 ActionMode 常量之一。


ButtonGroup button_group 🔗

与按钮关联的 ButtonGroup。不要与节点组混淆。

注意:如果按钮被分配了 ButtonGroup,则它将被配置为单选按钮。


BitField[MouseButtonMask] button_mask = 1 🔗

二进制掩码,用于选择该按钮将响应哪些鼠标按钮。

要同时允许左键单击和右键单击,请使用 MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT


bool button_pressed = false 🔗

  • void set_pressed(value: bool)

  • bool is_pressed()

如果为 true,则该按钮的状态为被按下。表示按钮被按下或被切换(如果 toggle_mode 处于活动状态)。仅当 toggle_modetrue 时才有效。

注意:设置 button_pressed 将导致 toggled 被发出。如果想在不发出该信号的情况下更改按下状态,请使用 set_pressed_no_signal


bool disabled = false 🔗

  • void set_disabled(value: bool)

  • bool is_disabled()

如果为 true,则该按钮处于禁用状态,无法点击或切换。


bool keep_pressed_outside = false 🔗

  • void set_keep_pressed_outside(value: bool)

  • bool is_keep_pressed_outside()

如果为 true,当按下按钮时将光标移到按钮外时,按钮会保持按下状态。

注意:该属性只影响按钮的视觉表现。无论该属性的值是多少,信号都会在同一时刻发出。


Shortcut shortcut 🔗

与该按钮关联的 Shortcut


bool shortcut_feedback = true 🔗

  • void set_shortcut_feedback(value: bool)

  • bool is_shortcut_feedback()

如果为 true ,则当其快捷方式被激活时,该按钮将高亮一小段时间。如果为 falsetoggle_modefalse,则该快捷方式将在没有任何视觉反馈的情况下激活。


bool shortcut_in_tooltip = true 🔗

  • void set_shortcut_in_tooltip(value: bool)

  • bool is_shortcut_in_tooltip_enabled()

如果为 true,按钮将在工具提示中添加其快捷方式的信息。


bool toggle_mode = false 🔗

  • void set_toggle_mode(value: bool)

  • bool is_toggle_mode()

如果为 true,则按钮处于切换模式。使按钮在每次点击其区域时,在按下和未按下之间转换状态。


方法说明

void _pressed() virtual 🔗

当按钮被按下时调用。如果你需要知道按钮被按下的状态(并且 toggle_mode is active]是活动状态),请使用_toggled代替。


void _toggled(toggled_on: bool) virtual 🔗

当按钮被切换时调用(仅当 toggle_mode 处于活动状态时)。


DrawMode get_draw_mode() const 🔗

返回用于绘制按钮的视觉状态。主要可以通过覆盖 _draw() 或连接到“draw”信号来实现你自己的绘制代码。按钮的视觉状态由 DrawMode 枚举定义。


bool is_hovered() const 🔗

如果鼠标已进入按钮,且尚未离开,则返回 true


void set_pressed_no_signal(pressed: bool) 🔗

更改按钮的 button_pressed 状态,而不发出 toggled。当只想更改按钮的状态而不发送按下的事件时使用(例如,在初始化场景时)。仅当 toggle_modetrue 时才有效。

注意:该方法不会取消按下 button_group 中的其他按钮。