Button¶
继承: BaseButton < Control < CanvasItem < Item < Object
派生: CheckBox, CheckButton, ColorPickerButton, MenuButton, OptionButton
可以包含文本和图标的主题按钮。
描述¶
Button是标准的主题按钮。它可以包含文本和图标,并根据当前的Theme显示它们。
示例:创建一个按钮并连接一个在按下按钮时会被调用的方法:
func iStart() -> void:
var button = Button.new()
button.text = "Click me"
button.pressed.connect(_button_pressed)
add_child(button)
func button_pressed():
print("Hello world!")
public override void iStart()
{
var button = new Button();
button.Text = "Click me";
button.Pressed += ButtonPressed;
AddChild(button);
}
private void ButtonPressed()
{
S3.Print("Hello world!");
}
另请参阅BaseButton,其中包含与此节点相关的常见属性和方法。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
主题属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
属性说明¶
HorizontalAlignment alignment = 1 🔗
void set_text_alignment(value: HorizontalAlignment)
HorizontalAlignment get_text_alignment()
按钮文本的文本对齐策略,请使用HorizontalAlignment常量之一。
AutowrapMode autowrap_mode = 0 🔗
void set_autowrap_mode(value: AutowrapMode)
AutowrapMode get_autowrap_mode()
如果设置为TextServer.AUTOWRAP_OFF以外的值,则文本将被包裹在节点的边界矩形内。
如果true,则太大而不适合按钮的文本将被水平裁剪。如果false,则按钮将始终足够宽以容纳文本。文本不会垂直裁剪,按钮的高度不受此属性的影响。
启用后,按钮的图标将展开/缩小以适应按钮的大小,同时保持其纵横。另请参见icon_max_width。
扁平按钮不显示装饰。
按钮的图标,如果存在文本,则图标将放置在文本之前。
要编辑图标的边距和行间距,请使用h_separation主题属性和使用的StyleBoxes的content_margin_*属性。
HorizontalAlignment icon_alignment = 0 🔗
void set_icon_alignment(value: HorizontalAlignment)
HorizontalAlignment get_icon_alignment()
指定图标是否应与按钮的左、右或中心水平对齐。使用与文本对齐相同的HorizontalAlignment常量。如果水平和垂直居中,文本将绘制在图标顶部。
用于换行和文本整形算法的语言代码,如果留空则使用当前语言环境。
将显示在按钮区域内的按钮文本。
TextDirection text_direction = 0 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
基本文本写作方向。
OverrunBehavior text_overrun_behavior = 0 🔗
void set_text_overrun_behavior(value: OverrunBehavior)
OverrunBehavior get_text_overrun_behavior()
设置文本超过节点边界矩形时的裁剪行为。有关所有模式的描述,请参阅OverrunBehavior。
VerticalAlignment vertical_icon_alignment = 1 🔗
void set_vertical_icon_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_icon_alignment()
指定图标是否应与按钮的顶部、底部或中心垂直对齐。使用与文本对齐相同的VerticalAlignment常量。如果水平和垂直居中,文本将绘制在图标顶部。
主题属性说明¶
Color font_color = Color(0.875, 0.875, 0.875, 1) 🔗
Button的默认文本Color。
Color font_disabled_color = Color(0.875, 0.875, 0.875, 0.5) 🔗
禁用Button时使用的文本Color。
Color font_focus_color = Color(0.95, 0.95, 0.95, 1) 🔗
聚焦Button时使用的文本Color。仅替换按钮的正常文本颜色。禁用、悬停和按下状态优先于此颜色。
Color font_hover_color = Color(0.95, 0.95, 0.95, 1) 🔗
悬停Button时使用的文本Color。
Color font_hover_pressed_color = Color(1, 1, 1, 1) 🔗
悬停并按下Button时使用的文本Color。
Color font_outline_color = Color(0, 0, 0, 1) 🔗
Button的文本轮廓色调。
Color font_pressed_color = Color(1, 1, 1, 1) 🔗
按下Button时使用的文本Color。
Color icon_disabled_color = Color(1, 1, 1, 0.4) 🔗
禁用Button时使用的图标调制Color。
Color icon_focus_color = Color(1, 1, 1, 1) 🔗
聚焦Button时使用的图标调制Color。仅替换按钮的正常调制颜色。禁用、悬停和按下状态优先于此颜色。
Color icon_hover_color = Color(1, 1, 1, 1) 🔗
悬停Button时使用的图标调制Color。
Color icon_hover_pressed_color = Color(1, 1, 1, 1) 🔗
悬停并按下Button时使用的图标调制Color。
Color icon_normal_color = Color(1, 1, 1, 1) 🔗
默认图标调制Button的Color。
Color icon_pressed_color = Color(1, 1, 1, 1) 🔗
按下Button时使用的图标调制Color。
int align_to_largest_stylebox = 0 🔗
此常量充当布尔值。如果true,则按钮和文本/图标对齐的最小大小始终基于最大样式框边距,否则基于当前按钮状态样式框边距。
Button的图标和文本之间的水平空间。使用时负值将被视为0。
Button图标的最大允许宽度。此限制应用于图标的默认大小之上,如果expand_icon为true,则应用于其扩展大小。高度根据图标的比例进行调整。如果按钮有其他图标(例如CheckBox),它们也将受到限制。
行间距增加(以像素为单位),行间距增加到行下降。这个值可以是负数。
文本大纲的大小。
注意:如果使用启用了FontFile.multichannel_signed_distance_field的字体,则其FontFile.msdf_pixel_range必须设置为至少两倍outline_size的值才能使轮廓渲染看起来正确。否则,轮廓可能会比预期的更早被切断。
Button文本的Font。
Button文本的字体大小。
Button的默认图标。仅在未分配icon时出现。
禁用Button时使用的StyleBox。
禁用Button时使用的StyleBox(用于从右到左的布局)。
Button聚焦时使用的StyleBox。focusStyleBox显示在底座StyleBox的上方,因此应使用部分透明的StyleBox来确保底座StyleBox保持可见。表示轮廓或下划线的StyleBox可以很好地用于此目的。要禁用焦点视觉效果,请分配StyleBoxEmpty资源。请注意,禁用焦点视觉效果会损害键盘/控制器导航的可用性,因此出于可访问性原因,不建议这样做。
悬停Button时使用的StyleBox。
StyleBox在Button悬停时使用(用于从右到左的布局)。
StyleBox在同时按下Button和悬停时使用。
StyleBox hover_pressed_mirrored 🔗
StyleBox用于同时按下Button并悬停(用于从右到左的布局)。
Button的默认StyleBox。
Button的默认StyleBox(用于从右到左的布局)。
按下Button时使用的StyleBox。
StyleBox在按下Button时使用(用于从右到左的布局)。