Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
BaseButton¶
继承: Control < CanvasItem < Node < Object
派生: Button, LinkButton, TextureButton
GUI 按钮的抽象基类。
描述¶
BaseButton 是 GUI 按钮的抽象基类。本身不显示任何东西。
属性¶
|
||
BitField<MouseButtonMask> |
|
|
|
||
|
||
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 toggled_on )
当按钮刚刚在按下和正常状态之间切换时发出(仅当 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
void set_action_mode ( ActionMode value )
ActionMode get_action_mode ( )
确定按钮何时被认为被点击,是 ActionMode 常量之一。
ButtonGroup button_group
void set_button_group ( ButtonGroup value )
ButtonGroup get_button_group ( )
与按钮关联的 ButtonGroup。不要与节点组混淆。
注意:如果按钮被分配了 ButtonGroup,则它将被配置为单选按钮。
BitField<MouseButtonMask> button_mask = 1
void set_button_mask ( BitField<MouseButtonMask> value )
BitField<MouseButtonMask> get_button_mask ( )
二进制掩码,用于选择该按钮将响应哪些鼠标按钮。
要同时允许左键单击和右键单击,请使用 MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT
。
bool button_pressed = false
如果为 true
,则该按钮的状态为被按下。表示按钮被按下或被切换(如果 toggle_mode 处于活动状态)。仅当 toggle_mode 为 true
时才有效。
注意:设置 button_pressed 将导致 toggled 被发出。如果想在不发出该信号的情况下更改按下状态,请使用 set_pressed_no_signal。
bool disabled = false
如果为 true
,则该按钮处于禁用状态,无法点击或切换。
bool keep_pressed_outside = false
如果为 true
,当按下按钮时将光标移到按钮外时,按钮会保持按下状态。
注意:该属性只影响按钮的视觉表现。无论该属性的值是多少,信号都会在同一时刻发出。
Shortcut shortcut
与该按钮关联的 Shortcut。
bool shortcut_feedback = true
如果为 true
,则当其快捷方式被激活时,该按钮将高亮一小段时间。如果为 false
且 toggle_mode 为 false
,则该快捷方式将在没有任何视觉反馈的情况下激活。
bool shortcut_in_tooltip = true
如果为 true
,按钮将在工具提示中添加其快捷方式的信息。
bool toggle_mode = false
如果为 true
,则按钮处于切换模式。使按钮在每次点击其区域时,在按下和未按下之间转换状态。
方法说明¶
void _pressed ( ) virtual
当按钮被按下时调用。如果你需要知道按钮被按下的状态(并且 toggle_mode is active]是活动状态),请使用_toggled代替。
void _toggled ( bool toggled_on ) virtual
当按钮被切换时调用(仅当 toggle_mode 处于活动状态时)。
DrawMode get_draw_mode ( ) const
返回用于绘制按钮的视觉状态。主要可以通过覆盖 _draw() 或连接到“draw”信号来实现你自己的绘制代码。按钮的视觉状态由 DrawMode 枚举定义。
bool is_hovered ( ) const
如果鼠标已进入按钮,且尚未离开,则返回 true
。
void set_pressed_no_signal ( bool pressed )
更改按钮的 button_pressed 状态,而不发出 toggled。当只想更改按钮的状态而不发送按下的事件时使用(例如,在初始化场景时)。仅当 toggle_mode 为 true
时才有效。
注意:该方法不会取消按下 button_group 中的其他按钮。