BaseButton

继承: Control < CanvasItem < Item < Object

派生: Button, LinkButton, TextureButton

GUI按钮的抽象基类。

描述

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

属性

方法

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,则当其快捷方式被激活时,按钮将在短时间内突出显示。如果false并且toggle_modefalse,则快捷方式将在没有任何视觉反馈的情况下激活。


bool shortcut_in_tooltip = true 🔗

  • void set_shortcut_in_tooltip(value: bool)

  • bool is_shortcut_in_tooltip_enabled()

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

注意:当使用Control._make_custom_tooltip()自定义工具提示控件时,此属性不执行任何操作。


bool toggle_mode = false 🔗

  • void set_toggle_mode(value: bool)

  • bool is_toggle_mode()

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


方法说明

void _pressed() virtual 🔗

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


void _toggled(toggled_on: bool) virtual 🔗

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


DrawMode get_draw_mode() const 🔗

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


bool is_hovered() const 🔗

如果鼠标已经进入按钮并且还没有离开它,则返回true


void set_pressed_no_signal(pressed: bool) 🔗

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

注意:此方法不会解压缩button_group中的其他按钮。