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 中的其他按钮。