BaseButton

Inherits: Control < CanvasItem < Node < Object

Inherited By: Button, LinkButton, TextureButton

不同类型按钮的基类。

描述

BaseButton是按钮的抽象基类,所以不应该直接使用它(它不显示任何东西)。其他类型的按钮都继承自它。

属性

ActionMode

action_mode

1

int

button_mask

1

bool

disabled

false

FocusMode

enabled_focus_mode

2

FocusMode

focus_mode

2 (overrides Control)

ButtonGroup

group

bool

keep_pressed_outside

false

bool

pressed

false

ShortCut

shortcut

bool

shortcut_in_tooltip

true

bool

toggle_mode

false

方法

void

_pressed ( ) virtual

void

_toggled ( bool button_pressed ) virtual

DrawMode

get_draw_mode ( ) const

bool

is_hovered ( ) const

void

set_pressed_no_signal ( bool pressed )

信号

  • button_down ( )

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


  • button_up ( )

当按钮停止按下时发出。


  • pressed ( )

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

如果您需要知道按钮的按压状态(并且 toggle_mode 是活动的),请使用toggled代替。


  • toggled ( bool button_pressed )

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

枚举

enum DrawMode:

  • DRAW_NORMAL = 0 —- 按钮的正常状态(即没有按下、没有悬停、没有切换和启用)。

  • DRAW_PRESSED = 1 —- 按钮被按下的状态。

  • DRAW_HOVER = 2 —- 按钮的状态为悬停。

  • DRAW_DISABLED = 3 —- 按钮的状态为禁用。

  • DRAW_HOVER_PRESSED = 4 —- 按钮的状态既是悬停的,也是按下的。


enum ActionMode:

  • ACTION_MODE_BUTTON_PRESS = 0 —- 只需要按一下就可以认为按钮被点击了。

  • ACTION_MODE_BUTTON_RELEASE = 1 —- 要求按下后再释放,才算点击了按钮。

属性说明

Default

1

Setter

set_action_mode(value)

Getter

get_action_mode()

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


  • int button_mask

Default

1

Setter

set_button_mask(value)

Getter

get_button_mask()

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

要同时允许左键和右键,请使用 BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT


Default

false

Setter

set_disabled(value)

Getter

is_disabled()

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


Default

2

Setter

set_enabled_focus_mode(value)

Getter

get_enabled_focus_mode()

已弃用。 由于冗余,此属性已弃用,将在 Godot 4.0 中删除。此属性在设置后不会有任何影响。请改用 Control.focus_mode


Setter

set_button_group(value)

Getter

get_button_group()

与按钮相关联的ButtonGroup


  • bool keep_pressed_outside

Default

false

Setter

set_keep_pressed_outside(value)

Getter

is_keep_pressed_outside()

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

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


Default

false

Setter

set_pressed(value)

Getter

is_pressed()

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

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


Setter

set_shortcut(value)

Getter

get_shortcut()

与按钮相关联的ShortCut


  • bool shortcut_in_tooltip

Default

true

Setter

set_shortcut_in_tooltip(value)

Getter

is_shortcut_in_tooltip_enabled()

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


Default

false

Setter

set_toggle_mode(value)

Getter

is_toggle_mode()

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

方法说明

  • void _pressed ( ) virtual

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


  • void _toggled ( bool button_pressed ) virtual

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


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


  • bool is_hovered ( ) const

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


  • void set_pressed_no_signal ( bool pressed )

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

注意: 这个方法不会释放其按钮group 中的其他按钮。