AcceptDialog
2026/4/14大约 3 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — AcceptDialog
AcceptDialog
节点继承关系
继承链:Node → CanvasItem → Control → AcceptDialog
继承自 Control
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Size | 控件尺寸 |
| 属性 | Position | 控件位置 |
| 属性 | AnchorsPreset | 锚点预设 |
| 属性 | GrowDirection | 超出容器时的扩展方向 |
| 属性 | MouseFilter | 鼠标事件过滤(停止 / 通过 / 忽略) |
| 属性 | FocusMode | 焦点模式(无 / 单击 / 全部) |
| 信号 | gui_input | 接收到 GUI 输入事件 |
| 信号 | mouse_entered | 鼠标进入控件区域 |
| 信号 | mouse_exited | 鼠标离开控件区域 |
| 信号 | focus_entered | 获得焦点 |
| 信号 | focus_exited | 失去焦点 |
| 信号 | resized | 尺寸变化 |
| 方法 | GrabFocus() | 获取焦点 |
| 方法 | ReleaseFocus() | 释放焦点 |
| 方法 | SetAnchorsPreset() | 设置锚点预设 |
| 方法 | GetMinimumSize() | 获取最小尺寸 |
继承自 CanvasItem
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Visible | 是否可见 |
| 属性 | Modulate | 整体颜色叠加(乘法) |
| 属性 | SelfModulate | 自身颜色叠加(不影响子节点) |
| 属性 | ZIndex | 绘制层级(Z 轴排序) |
| 信号 | visibility_changed | 可见性变化时触发 |
| 方法 | GetGlobalMousePosition() | 获取鼠标全局坐标 |
继承自 Node
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Name | 节点名称 |
| 属性 | ProcessMode | 处理模式(始终 / 暂停时 / 仅编辑器) |
| 属性 | ProcessPriority | 处理优先级,数字越小越先执行 |
| 信号 | ready | 节点进入场景树并准备就绪 |
| 信号 | tree_entered | 节点进入场景树 |
| 信号 | tree_exited | 节点完全离开场景树 |
| 方法 | GetNode<T>() | 按路径获取子节点 |
| 方法 | AddChild() | 添加子节点 |
| 方法 | RemoveChild() | 移除子节点 |
| 方法 | QueueFree() | 帧结束后释放节点 |
| 方法 | GetParent() | 获取父节点 |
定义
AcceptDialog 是一个弹窗对话框,包含一段提示文字和一个"确定"按钮。就像游戏里弹出的"操作成功"提示——你看完点"确定"就关了。
使用频率:★ 基本用不到(需要弹窗提示时使用)
节点用途
- 显示提示信息
- 确认操作
- 作为其他对话框的基类
使用场景
- 操作成功提示
- 简单的信息确认
- 游戏结束提示
常用节点搭配
- 搭配
Button触发弹出 - ConfirmationDialog 和 FileDialog 继承自它
生效必备素材/资源
无需特殊资源。
节点属性与信号
自有属性
| 属性 | 类型 | 默认值 | 继承自 | 说明 |
|---|---|---|---|---|
dialog_text | string | "" | — | 对话框显示的文字 |
dialog_hide_on_ok | bool | true | — | 点击确认后是否自动关闭 |
dialog_autowrap | bool | true | — | 文字是否自动换行 |
ok_button_text | string | "OK" | — | 确认按钮的文字 |
信号
| 信号 | 触发时机 | 参数 |
|---|---|---|
confirmed | 用户点击确认按钮时 | 无 |
canceled | 用户点击关闭或取消时 | 无 |
close_requested | 请求关闭时 | 无 |
常用方法
| 方法 | 说明 |
|---|---|
PopupCentered(Vector2I) | 在屏幕中央弹出 |
PopupCenteredClamped() | 弹出并限制最大尺寸 |
Show() | 显示对话框 |
Hide() | 隐藏对话框 |
代码示例
C
using Godot;
public partial class DialogDemo : Control
{
private AcceptDialog _dialog;
public override void _Ready()
{
var btn = new Button();
btn.Text = "显示提示";
btn.Pressed += () => _dialog.PopupCentered(new Vector2I(300, 150));
AddChild(btn);
_dialog = new AcceptDialog();
_dialog.DialogText = "操作已成功完成!";
_dialog.OkButtonText = "好的";
_dialog.Confirmed += () => GD.Print("用户点击了确认");
AddChild(_dialog);
}
}GDScript
extends Control
var dialog: AcceptDialog
func _ready():
var btn = Button.new()
btn.text = "显示提示"
btn.pressed.connect(func(): dialog.popup_centered(Vector2i(300, 150)))
add_child(btn)
dialog = AcceptDialog.new()
dialog.dialog_text = "操作已成功完成!"
dialog.ok_button_text = "好的"
dialog.confirmed.connect(func(): print("用户点击了确认"))
add_child(dialog)