BaseButton
Inherits: Control < CanvasItem < Node < Object
Inherited By: Button, LinkButton, TextureButton
不同类型按钮的基类。
描述
BaseButton是按钮的抽象基类,所以不应该直接使用它(它不显示任何东西)。其他类型的按钮都继承自它。
属性
| ||
| ||
| ||
| ||
focus_mode |
| |
| ||
| ||
| ||
|
方法
void | _pressed ( ) virtual |
void | |
get_draw_mode ( ) const | |
is_hovered ( ) const | |
void | set_pressed_no_signal ( bool pressed ) |
信号
- button_down ( )
当按钮开始被按下时发出。
- button_up ( )
当按钮停止按下时发出。
- pressed ( )
当按钮被切换或按下时发出。如果 action_mode 是 ACTION_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 —- 要求按下后再释放,才算点击了按钮。
属性说明
- ActionMode action_mode
Default |
|
Setter | set_action_mode(value) |
Getter | get_action_mode() |
确定按钮何时被认为被点击,是 ActionMode 常量之一。
- int button_mask
Default |
|
Setter | set_button_mask(value) |
Getter | get_button_mask() |
二进制掩码,用于选择该按钮将响应的鼠标按钮。
要同时允许左键和右键,请使用 BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT
。
- bool disabled
Default |
|
Setter | set_disabled(value) |
Getter | is_disabled() |
如果true
,则该按钮处于禁用状态,无法点击或切换。
- FocusMode enabled_focus_mode
Default |
|
Setter | set_enabled_focus_mode(value) |
Getter | get_enabled_focus_mode() |
已弃用。 由于冗余,此属性已弃用,将在 Godot 4.0 中删除。此属性在设置后不会有任何影响。请改用 Control.focus_mode。
- ButtonGroup group
Setter | set_button_group(value) |
Getter | get_button_group() |
与按钮相关联的ButtonGroup。
- bool keep_pressed_outside
Default |
|
Setter | set_keep_pressed_outside(value) |
Getter | is_keep_pressed_outside() |
如果true
,当按下按钮时将光标移到按钮外时,按钮会保持按下状态。
注意:该属性只影响按钮的视觉表现。无论该属性的值是多少,信号都会在同一时刻发出。
- bool pressed
Default |
|
Setter | set_pressed(value) |
Getter | is_pressed() |
如果 true
,按钮为按下状态。表示按钮被按下或切换(如果 toggle_mode 处于激活状态)。仅当 toggle_mode 为 true
时才有效。
注:设置 pressed 将导致 toggled 触发。如果你想在不触发该信号的情况下更改按下状态,请使用 set_pressed_no_signal。
- ShortCut shortcut
Setter | set_shortcut(value) |
Getter | get_shortcut() |
与按钮相关联的ShortCut。
- bool shortcut_in_tooltip
Default |
|
Setter | set_shortcut_in_tooltip(value) |
Getter | is_shortcut_in_tooltip_enabled() |
如果true
,按钮将在工具提示中添加其快捷方式的信息。
- bool toggle_mode
Default |
|
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 处于活动状态时)。
- DrawMode get_draw_mode ( ) const
返回用于绘制按钮的视觉状态。当您通过覆盖 _draw() 或连接到“draw”信号来实现您自己的绘制代码时,这很有用。按钮的视觉状态由 DrawMode 枚举定义。
- bool is_hovered ( ) const
如果鼠标已进入按钮,且尚未离开,则返回true
。
- void set_pressed_no_signal ( bool pressed )
改变按钮的pressed状态,不触发toggled。当你只想改变按钮的状态而不发送按下事件时使用(例如,在初始化场景时)。只有当toggle_mode是true
时才有效。
注意: 这个方法不会释放其按钮group 中的其他按钮。