DisplayServer

继承: Object

用于低阶窗口管理的服务器接口。

描述

所有与窗口管理相关的内容都由 DisplayServer(显示服务器)处理。因为一个操作系统可能支持多个显示服务器,所以与 OS 是分开的。

无头模式:如果使用 --headless 命令行参数启动引擎,就会禁用所有渲染和窗口管理功能。此时 DisplayServer 的大多数函数都会返回虚设值。

方法

RID

accessibility_create_element(window_id: int, role: AccessibilityRole)

RID

accessibility_create_sub_element(parent_rid: RID, role: AccessibilityRole, insert_pos: int = -1)

RID

accessibility_create_sub_text_edit_elements(parent_rid: RID, shaped_text: RID, min_height: float, insert_pos: int = -1, is_last_line: bool = false)

Variant

accessibility_element_get_meta(id: RID) const

void

accessibility_element_set_meta(id: RID, meta: Variant)

void

accessibility_free_element(id: RID)

RID

accessibility_get_window_root(window_id: int) const

bool

accessibility_has_element(id: RID) const

int

accessibility_screen_reader_active() const

void

accessibility_set_window_focused(window_id: int, focused: bool)

void

accessibility_set_window_rect(window_id: int, rect_out: Rect2, rect_in: Rect2)

int

accessibility_should_increase_contrast() const

int

accessibility_should_reduce_animation() const

int

accessibility_should_reduce_transparency() const

void

accessibility_update_add_action(id: RID, action: AccessibilityAction, callable: Callable)

void

accessibility_update_add_child(id: RID, child_id: RID)

void

accessibility_update_add_custom_action(id: RID, action_id: int, action_description: String)

void

accessibility_update_add_related_controls(id: RID, related_id: RID)

void

accessibility_update_add_related_described_by(id: RID, related_id: RID)

void

accessibility_update_add_related_details(id: RID, related_id: RID)

void

accessibility_update_add_related_flow_to(id: RID, related_id: RID)

void

accessibility_update_add_related_labeled_by(id: RID, related_id: RID)

void

accessibility_update_add_related_radio_group(id: RID, related_id: RID)

void

accessibility_update_set_active_descendant(id: RID, other_id: RID)

void

accessibility_update_set_background_color(id: RID, color: Color)

void

accessibility_update_set_bounds(id: RID, p_rect: Rect2)

void

accessibility_update_set_checked(id: RID, checekd: bool)

void

accessibility_update_set_classname(id: RID, classname: String)

void

accessibility_update_set_color_value(id: RID, color: Color)

void

accessibility_update_set_description(id: RID, description: String)

void

accessibility_update_set_error_message(id: RID, other_id: RID)

void

accessibility_update_set_extra_info(id: RID, name: String)

void

accessibility_update_set_flag(id: RID, flag: AccessibilityFlags, value: bool)

void

accessibility_update_set_focus(id: RID)

void

accessibility_update_set_foreground_color(id: RID, color: Color)

void

accessibility_update_set_in_page_link_target(id: RID, other_id: RID)

void

accessibility_update_set_language(id: RID, language: String)

void

accessibility_update_set_list_item_count(id: RID, size: int)

void

accessibility_update_set_list_item_expanded(id: RID, expanded: bool)

void

accessibility_update_set_list_item_index(id: RID, index: int)

void

accessibility_update_set_list_item_level(id: RID, level: int)

void

accessibility_update_set_list_item_selected(id: RID, selected: bool)

void

accessibility_update_set_list_orientation(id: RID, vertical: bool)

void

accessibility_update_set_live(id: RID, live: AccessibilityLiveMode)

void

accessibility_update_set_member_of(id: RID, group_id: RID)

void

accessibility_update_set_name(id: RID, name: String)

void

accessibility_update_set_next_on_line(id: RID, other_id: RID)

void

accessibility_update_set_num_jump(id: RID, jump: float)

void

accessibility_update_set_num_range(id: RID, min: float, max: float)

void

accessibility_update_set_num_step(id: RID, step: float)

void

accessibility_update_set_num_value(id: RID, position: float)

void

accessibility_update_set_placeholder(id: RID, placeholder: String)

void

accessibility_update_set_popup_type(id: RID, popup: AccessibilityPopupType)

void

accessibility_update_set_previous_on_line(id: RID, other_id: RID)

void

accessibility_update_set_role(id: RID, role: AccessibilityRole)

void

accessibility_update_set_role_description(id: RID, description: String)

void

accessibility_update_set_scroll_x(id: RID, position: float)

void

accessibility_update_set_scroll_x_range(id: RID, min: float, max: float)

void

accessibility_update_set_scroll_y(id: RID, position: float)

void

accessibility_update_set_scroll_y_range(id: RID, min: float, max: float)

void

accessibility_update_set_shortcut(id: RID, shortcut: String)

void

accessibility_update_set_state_description(id: RID, description: String)

void

accessibility_update_set_table_cell_position(id: RID, row_index: int, column_index: int)

void

accessibility_update_set_table_cell_span(id: RID, row_span: int, column_span: int)

void

accessibility_update_set_table_column_count(id: RID, count: int)

void

accessibility_update_set_table_column_index(id: RID, index: int)

void

accessibility_update_set_table_row_count(id: RID, count: int)

void

accessibility_update_set_table_row_index(id: RID, index: int)

void

accessibility_update_set_text_align(id: RID, align: HorizontalAlignment)

void

accessibility_update_set_text_decorations(id: RID, underline: bool, strikethrough: bool, overline: bool)

void

accessibility_update_set_text_orientation(id: RID, vertical: bool)

void

accessibility_update_set_text_selection(id: RID, text_start_id: RID, start_char: int, text_end_id: RID, end_char: int)

void

accessibility_update_set_tooltip(id: RID, tooltip: String)

void

accessibility_update_set_transform(id: RID, transform: Transform2D)

void

accessibility_update_set_url(id: RID, url: String)

void

accessibility_update_set_value(id: RID, value: String)

void

beep() const

String

clipboard_get() const

Image

clipboard_get_image() const

String

clipboard_get_primary() const

bool

clipboard_has() const

bool

clipboard_has_image() const

void

clipboard_set(clipboard: String)

void

clipboard_set_primary(clipboard_primary: String)

bool

color_picker(callback: Callable)

int

create_status_indicator(icon: Texture2D, tooltip: String, callback: Callable)

CursorShape

cursor_get_shape() const

void

cursor_set_custom_image(cursor: Resource, shape: CursorShape = 0, hotspot: Vector2 = Vector2(0, 0))

void

cursor_set_shape(shape: CursorShape)

void

delete_status_indicator(id: int)

Error

dialog_input_text(title: String, description: String, existing_text: String, callback: Callable)

Error

dialog_show(title: String, description: String, buttons: PackedStringArray, callback: Callable)

void

enable_for_stealing_focus(process_id: int)

Error

file_dialog_show(title: String, current_directory: String, filename: String, show_hidden: bool, mode: FileDialogMode, filters: PackedStringArray, callback: Callable, parent_window_id: int = 0)

Error

file_dialog_with_options_show(title: String, current_directory: String, root: String, filename: String, show_hidden: bool, mode: FileDialogMode, filters: PackedStringArray, options: Array[Dictionary], callback: Callable, parent_window_id: int = 0)

void

force_process_and_drop_events()

Color

get_accent_color() const

Color

get_base_color() const

Array[Rect2]

get_display_cutouts() const

Rect2i

get_display_safe_area() const

int

get_keyboard_focus_screen() const

String

get_name() const

int

get_primary_screen() const

int

get_screen_count() const

int

get_screen_from_rect(rect: Rect2) const

bool

get_swap_cancel_ok()

int

get_window_at_screen_position(position: Vector2i) const

PackedInt32Array

get_window_list() const

int

global_menu_add_check_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_icon_check_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_icon_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_icon_radio_check_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_multistate_item(menu_root: String, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_radio_check_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

global_menu_add_separator(menu_root: String, index: int = -1)

int

global_menu_add_submenu_item(menu_root: String, label: String, submenu: String, index: int = -1)

void

global_menu_clear(menu_root: String)

Key

global_menu_get_item_accelerator(menu_root: String, idx: int) const

Callable

global_menu_get_item_callback(menu_root: String, idx: int) const

int

global_menu_get_item_count(menu_root: String) const

Texture2D

global_menu_get_item_icon(menu_root: String, idx: int) const

int

global_menu_get_item_indentation_level(menu_root: String, idx: int) const

int

global_menu_get_item_index_from_tag(menu_root: String, tag: Variant) const

int

global_menu_get_item_index_from_text(menu_root: String, text: String) const

Callable

global_menu_get_item_key_callback(menu_root: String, idx: int) const

int

global_menu_get_item_max_states(menu_root: String, idx: int) const

int

global_menu_get_item_state(menu_root: String, idx: int) const

String

global_menu_get_item_submenu(menu_root: String, idx: int) const

Variant

global_menu_get_item_tag(menu_root: String, idx: int) const

String

global_menu_get_item_text(menu_root: String, idx: int) const

String

global_menu_get_item_tooltip(menu_root: String, idx: int) const

Dictionary

global_menu_get_system_menu_roots() const

bool

global_menu_is_item_checkable(menu_root: String, idx: int) const

bool

global_menu_is_item_checked(menu_root: String, idx: int) const

bool

global_menu_is_item_disabled(menu_root: String, idx: int) const

bool

global_menu_is_item_hidden(menu_root: String, idx: int) const

bool

global_menu_is_item_radio_checkable(menu_root: String, idx: int) const

void

global_menu_remove_item(menu_root: String, idx: int)

void

global_menu_set_item_accelerator(menu_root: String, idx: int, keycode: Key)

void

global_menu_set_item_callback(menu_root: String, idx: int, callback: Callable)

void

global_menu_set_item_checkable(menu_root: String, idx: int, checkable: bool)

void

global_menu_set_item_checked(menu_root: String, idx: int, checked: bool)

void

global_menu_set_item_disabled(menu_root: String, idx: int, disabled: bool)

void

global_menu_set_item_hidden(menu_root: String, idx: int, hidden: bool)

void

global_menu_set_item_hover_callbacks(menu_root: String, idx: int, callback: Callable)

void

global_menu_set_item_icon(menu_root: String, idx: int, icon: Texture2D)

void

global_menu_set_item_indentation_level(menu_root: String, idx: int, level: int)

void

global_menu_set_item_key_callback(menu_root: String, idx: int, key_callback: Callable)

void

global_menu_set_item_max_states(menu_root: String, idx: int, max_states: int)

void

global_menu_set_item_radio_checkable(menu_root: String, idx: int, checkable: bool)

void

global_menu_set_item_state(menu_root: String, idx: int, state: int)

void

global_menu_set_item_submenu(menu_root: String, idx: int, submenu: String)

void

global_menu_set_item_tag(menu_root: String, idx: int, tag: Variant)

void

global_menu_set_item_text(menu_root: String, idx: int, text: String)

void

global_menu_set_item_tooltip(menu_root: String, idx: int, tooltip: String)

void

global_menu_set_popup_callbacks(menu_root: String, open_callback: Callable, close_callback: Callable)

bool

has_additional_outputs() const

bool

has_feature(feature: Feature) const

bool

has_hardware_keyboard() const

void

help_set_search_callbacks(search_callback: Callable, action_callback: Callable)

Vector2i

ime_get_selection() const

String

ime_get_text() const

bool

is_dark_mode() const

bool

is_dark_mode_supported() const

bool

is_touchscreen_available() const

bool

is_window_transparency_available() const

int

keyboard_get_current_layout() const

Key

keyboard_get_keycode_from_physical(keycode: Key) const

Key

keyboard_get_label_from_physical(keycode: Key) const

int

keyboard_get_layout_count() const

String

keyboard_get_layout_language(index: int) const

String

keyboard_get_layout_name(index: int) const

void

keyboard_set_current_layout(index: int)

BitField[MouseButtonMask]

mouse_get_button_state() const

MouseMode

mouse_get_mode() const

Vector2i

mouse_get_position() const

void

mouse_set_mode(mouse_mode: MouseMode)

void

process_events()

void

register_additional_output(object: Object)

int

screen_get_dpi(screen: int = -1) const

Image

screen_get_image(screen: int = -1) const

Image

screen_get_image_rect(rect: Rect2i) const

float

screen_get_max_scale() const

ScreenOrientation

screen_get_orientation(screen: int = -1) const

Color

screen_get_pixel(position: Vector2i) const

Vector2i

screen_get_position(screen: int = -1) const

float

screen_get_refresh_rate(screen: int = -1) const

float

screen_get_scale(screen: int = -1) const

Vector2i

screen_get_size(screen: int = -1) const

Rect2i

screen_get_usable_rect(screen: int = -1) const

bool

screen_is_kept_on() const

void

screen_set_keep_on(enable: bool)

void

screen_set_orientation(orientation: ScreenOrientation, screen: int = -1)

void

set_hardware_keyboard_connection_change_callback(callable: Callable)

void

set_icon(image: Image)

void

set_native_icon(filename: String)

void

set_system_theme_change_callback(callable: Callable)

void

show_emoji_and_symbol_picker() const

Rect2

status_indicator_get_rect(id: int) const

void

status_indicator_set_callback(id: int, callback: Callable)

void

status_indicator_set_icon(id: int, icon: Texture2D)

void

status_indicator_set_menu(id: int, menu_rid: RID)

void

status_indicator_set_tooltip(id: int, tooltip: String)

String

tablet_get_current_driver() const

int

tablet_get_driver_count() const

String

tablet_get_driver_name(idx: int) const

void

tablet_set_current_driver(name: String)

Array[Dictionary]

tts_get_voices() const

PackedStringArray

tts_get_voices_for_language(language: String) const

bool

tts_is_paused() const

bool

tts_is_speaking() const

void

tts_pause()

void

tts_resume()

void

tts_set_utterance_callback(event: TTSUtteranceEvent, callable: Callable)

void

tts_speak(text: String, voice: String, volume: int = 50, pitch: float = 1.0, rate: float = 1.0, utterance_id: int = 0, interrupt: bool = false)

void

tts_stop()

void

unregister_additional_output(object: Object)

int

virtual_keyboard_get_height() const

void

virtual_keyboard_hide()

void

virtual_keyboard_show(existing_text: String, position: Rect2 = Rect2(0, 0, 0, 0), type: VirtualKeyboardType = 0, max_length: int = -1, cursor_start: int = -1, cursor_end: int = -1)

void

warp_mouse(position: Vector2i)

bool

window_can_draw(window_id: int = 0) const

int

window_get_active_popup() const

int

window_get_attached_instance_id(window_id: int = 0) const

int

window_get_current_screen(window_id: int = 0) const

bool

window_get_flag(flag: WindowFlags, window_id: int = 0) const

Vector2i

window_get_max_size(window_id: int = 0) const

Vector2i

window_get_min_size(window_id: int = 0) const

WindowMode

window_get_mode(window_id: int = 0) const

int

window_get_native_handle(handle_type: HandleType, window_id: int = 0) const

Rect2i

window_get_popup_safe_rect(window: int) const

Vector2i

window_get_position(window_id: int = 0) const

Vector2i

window_get_position_with_decorations(window_id: int = 0) const

Vector3i

window_get_safe_title_margins(window_id: int = 0) const

Vector2i

window_get_size(window_id: int = 0) const

Vector2i

window_get_size_with_decorations(window_id: int = 0) const

Vector2i

window_get_title_size(title: String, window_id: int = 0) const

VSyncMode

window_get_vsync_mode(window_id: int = 0) const

bool

window_is_focused(window_id: int = 0) const

bool

window_is_maximize_allowed(window_id: int = 0) const

bool

window_maximize_on_title_dbl_click() const

bool

window_minimize_on_title_dbl_click() const

void

window_move_to_foreground(window_id: int = 0)

void

window_request_attention(window_id: int = 0)

void

window_set_color(color: Color)

void

window_set_current_screen(screen: int, window_id: int = 0)

void

window_set_drop_files_callback(callback: Callable, window_id: int = 0)

void

window_set_exclusive(window_id: int, exclusive: bool)

void

window_set_flag(flag: WindowFlags, enabled: bool, window_id: int = 0)

void

window_set_ime_active(active: bool, window_id: int = 0)

void

window_set_ime_position(position: Vector2i, window_id: int = 0)

void

window_set_input_event_callback(callback: Callable, window_id: int = 0)

void

window_set_input_text_callback(callback: Callable, window_id: int = 0)

void

window_set_max_size(max_size: Vector2i, window_id: int = 0)

void

window_set_min_size(min_size: Vector2i, window_id: int = 0)

void

window_set_mode(mode: WindowMode, window_id: int = 0)

void

window_set_mouse_passthrough(region: PackedVector2Array, window_id: int = 0)

void

window_set_popup_safe_rect(window: int, rect: Rect2i)

void

window_set_position(position: Vector2i, window_id: int = 0)

void

window_set_rect_changed_callback(callback: Callable, window_id: int = 0)

void

window_set_size(size: Vector2i, window_id: int = 0)

void

window_set_title(title: String, window_id: int = 0)

void

window_set_transient(window_id: int, parent_window_id: int)

void

window_set_vsync_mode(vsync_mode: VSyncMode, window_id: int = 0)

void

window_set_window_buttons_offset(offset: Vector2i, window_id: int = 0)

void

window_set_window_event_callback(callback: Callable, window_id: int = 0)

void

window_start_drag(window_id: int = 0)

void

window_start_resize(edge: WindowResizeEdge, window_id: int = 0)


枚举

enum Feature: 🔗

Feature FEATURE_GLOBAL_MENU = 0

已弃用: Use NativeMenu or PopupMenu instead.

显示服务器支持全局菜单。能够让应用程序在操作系统的顶部栏显示其菜单项。macOS

Feature FEATURE_SUBWINDOWS = 1

显示服务器支持多窗口,可以移动到主窗口之外。Windows、macOS、Linux(X11)

Feature FEATURE_TOUCHSCREEN = 2

显示服务器支持触屏输入。Windows、Linux(X11)、Android、iOS、Web

Feature FEATURE_MOUSE = 3

显示服务器支持鼠标输入。Windows、macOS、Linux(X11/Wayland)、Android、Web

Feature FEATURE_MOUSE_WARP = 4

显示服务器支持扭曲鼠标坐标以将鼠标光标限制在一个区域内,但在到达其中一个边缘时循环。Windows, macOS, Linux (X11/Wayland)

Feature FEATURE_CLIPBOARD = 5

显示服务器支持剪贴板数据的设置和获取。另见 FEATURE_CLIPBOARD_PRIMARYWindows、macOS、Linux(X11/Wayland)、Android、iOS、Web

Feature FEATURE_VIRTUAL_KEYBOARD = 6

显示服务器支持在请求输入文本但没有物理键盘时弹出虚拟键盘。Android、iOS、Web

Feature FEATURE_CURSOR_SHAPE = 7

显示服务器支持将鼠标光标形状设置为与默认不同。Windows、macOS、Linux(X11/Wayland)、Android、Web

Feature FEATURE_CUSTOM_CURSOR_SHAPE = 8

显示服务器支持将鼠标光标形状设置为自定义图像。Windows、macOS、Linux(X11/Wayland)、Web

Feature FEATURE_NATIVE_DIALOG = 9

显示服务器支持使用操作系统的原生外观生成文本对话框。请参阅 dialog_show()Windows、macOS

Feature FEATURE_IME = 10

显示服务器支持 输入法,它通常用于输入中文、日文和韩文文本。这由操作系统处理,而不是由 Godot 处理。Windows, macOS, Linux (X11)

Feature FEATURE_WINDOW_TRANSPARENCY = 11

显示服务器支持窗口可以使用逐像素透明,以使它们后面的窗口部分或完全可见。Windows、macOS、Linux(X11/Wayland)、Android

Feature FEATURE_HIDPI = 12

显示服务器支持查询操作系统的显示缩放系数。这允许可靠地执行自动 hiDPI 显示器检测,而不是根据屏幕分辨率和报告的显示器 DPI 进行猜测(由于显示器 EDID 损坏,这可能不可靠)。Windows、Linux(Wayland)、macOS

Feature FEATURE_ICON = 13

Display server supports changing the window icon (usually displayed in the top-left corner). Windows, macOS, Linux (X11/Wayland)

Note: Use on Wayland requires the compositor to implement the xdg_toplevel_icon_v1 protocol, which not all compositors do. See xdg_toplevel_icon_v1#compositor-support for more information on individual compositor support.

Feature FEATURE_NATIVE_ICON = 14

显示服务器支持改变窗口图标(通常显示在左上角)。Windows、macOS

Feature FEATURE_ORIENTATION = 15

显示服务器支持改变屏幕朝向。Android、iOS

Feature FEATURE_SWAP_BUFFERS = 16

显示服务器支持将垂直同步状态改为非默认状态(不支持此功能的平台强制启用垂直同步)。Windows、macOS、Linux(X11/Wayland)

Feature FEATURE_CLIPBOARD_PRIMARY = 18

显示服务器支持使用主剪贴板。主剪贴板和 FEATURE_CLIPBOARD 是不同的剪贴板。Linux(X11/Wayland)

Feature FEATURE_TEXT_TO_SPEECH = 19

显示服务器支持文字转语音。见 tts_* 方法。Windows、macOS、Linux(X11/Wayland)、Android、iOS、Web

Feature FEATURE_EXTEND_TO_TITLE = 20

显示服务器支持将窗口内容扩展到标题。见 WINDOW_FLAG_EXTEND_TO_TITLEmacOS

Feature FEATURE_SCREEN_CAPTURE = 21

显示服务器支持读取屏幕像素。见 screen_get_pixel()

Feature FEATURE_STATUS_INDICATOR = 22

显示服务器支持应用程序状态指示器。

Feature FEATURE_NATIVE_HELP = 23

显示服务器支持本机帮助系统搜索回调。请参阅 help_set_search_callbacks()

Feature FEATURE_NATIVE_DIALOG_INPUT = 24

显示服务器支持使用操作系统的原生外观生成文本输入对话框。请参阅 dialog_input_text()Windows、macOS

Feature FEATURE_NATIVE_DIALOG_FILE = 25

显示服务器支持使用操作系统的原生外观和操作方式来生成选择文件或目录的对话框。见 file_dialog_show()Windows、macOS、Linux(X11/Wayland)、Android

Feature FEATURE_NATIVE_DIALOG_FILE_EXTRA = 26

显示服务器支持 FEATURE_NATIVE_DIALOG_FILE 的所有功能,并增加了“选项”功能以及对 res://user:// 路径的原生对话框文件访问。见 file_dialog_show()file_dialog_with_options_show()Windows、macOS、Linux(X11/Wayland)

Feature FEATURE_WINDOW_DRAG = 27

显示服务器支持在需要时发起窗口拖拽和大小调整操作。见 window_start_drag()window_start_resize()

Feature FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE = 28

显示服务器支持窗口标志 WINDOW_FLAG_EXCLUDE_FROM_CAPTUREWindows、macOS

Feature FEATURE_WINDOW_EMBEDDING = 29

显示服务器支持嵌入其他进程的窗口。Windows、Linux(X11)、macOS

Feature FEATURE_NATIVE_DIALOG_FILE_MIME = 30

原生文件选择对话框支持使用 MIME 类型作为过滤器。

Feature FEATURE_EMOJI_AND_SYMBOL_PICKER = 31

显示服务器支持系统 Emoji 和符号拾取器。Windows、macOS

Feature FEATURE_NATIVE_COLOR_PICKER = 32

显示服务器支持原生取色器。Linux(X11/Wayland)

Feature FEATURE_SELF_FITTING_WINDOWS = 33

显示服务器会根据屏幕边界自动调整弹出窗口的大小。Window 节点不应该自行进行此类调整。

Feature FEATURE_ACCESSIBILITY_SCREEN_READER = 34

显示服务器支持与屏幕阅读器或盲文显示器的交互。Linux(X11/Wayland)、macOS、Windows


enum AccessibilityRole: 🔗

AccessibilityRole ROLE_UNKNOWN = 0

未知角色或自定义角色。

AccessibilityRole ROLE_DEFAULT_BUTTON = 1

默认对话框按钮元素。

AccessibilityRole ROLE_AUDIO = 2

音频播放器元素。

AccessibilityRole ROLE_VIDEO = 3

视频播放器元素。

AccessibilityRole ROLE_STATIC_TEXT = 4

不可编辑的文本标签。

AccessibilityRole ROLE_CONTAINER = 5

容器元素。带有该角色的元素用于内部结构,会被屏幕阅读器忽略。

AccessibilityRole ROLE_PANEL = 6

面板容器元素。

AccessibilityRole ROLE_BUTTON = 7

按钮元素。

链接元素。

AccessibilityRole ROLE_CHECK_BOX = 9

复选框元素。

AccessibilityRole ROLE_RADIO_BUTTON = 10

单选按钮元素。

AccessibilityRole ROLE_CHECK_BUTTON = 11

复选按钮元素。

AccessibilityRole ROLE_SCROLL_BAR = 12

滚动条元素。

AccessibilityRole ROLE_SCROLL_VIEW = 13

滚动容器元素。

AccessibilityRole ROLE_SPLITTER = 14

容器拆分器手柄元素。

AccessibilityRole ROLE_SLIDER = 15

滑块元素。

AccessibilityRole ROLE_SPIN_BUTTON = 16

数字输入框元素。

AccessibilityRole ROLE_PROGRESS_INDICATOR = 17

进度指示元素。

AccessibilityRole ROLE_TEXT_FIELD = 18

可编辑文本框元素。

AccessibilityRole ROLE_MULTILINE_TEXT_FIELD = 19

多行可编辑文本框元素。

AccessibilityRole ROLE_COLOR_PICKER = 20

取色器元素。

AccessibilityRole ROLE_TABLE = 21

表格元素。

AccessibilityRole ROLE_CELL = 22

表格/树中的单元格元素。

AccessibilityRole ROLE_ROW = 23

表格/树中的行元素。

AccessibilityRole ROLE_ROW_GROUP = 24

表格/树中的行分组元素。

AccessibilityRole ROLE_ROW_HEADER = 25

表格/树中的行头元素。

AccessibilityRole ROLE_COLUMN_HEADER = 26

表格/树中的列头元素。

AccessibilityRole ROLE_TREE = 27

树视图元素。

AccessibilityRole ROLE_TREE_ITEM = 28

树视图项元素。

AccessibilityRole ROLE_LIST = 29

列表元素。

AccessibilityRole ROLE_LIST_ITEM = 30

列表项元素。

AccessibilityRole ROLE_LIST_BOX = 31

列表视图元素。

AccessibilityRole ROLE_LIST_BOX_OPTION = 32

列表视图项元素。

AccessibilityRole ROLE_TAB_BAR = 33

选项卡栏元素。

AccessibilityRole ROLE_TAB = 34

选项卡栏项目元素。

AccessibilityRole ROLE_TAB_PANEL = 35

选项卡面板元素。

AccessibilityRole ROLE_MENU_BAR = 36

菜单栏元素。

AccessibilityRole ROLE_MENU = 37

弹出菜单元素。

AccessibilityRole ROLE_MENU_ITEM = 38

弹出菜单项元素。

AccessibilityRole ROLE_MENU_ITEM_CHECK_BOX = 39

弹出菜单复选按钮菜单项元素。

AccessibilityRole ROLE_MENU_ITEM_RADIO = 40

弹出菜单单选按钮菜单项元素。

AccessibilityRole ROLE_IMAGE = 41

图像元素。

AccessibilityRole ROLE_WINDOW = 42

窗口元素。

AccessibilityRole ROLE_TITLE_BAR = 43

内嵌窗口标题栏元素。

AccessibilityRole ROLE_DIALOG = 44

对话框窗口元素。

AccessibilityRole ROLE_TOOLTIP = 45

工具提示元素。


enum AccessibilityPopupType: 🔗

AccessibilityPopupType POPUP_MENU = 0

弹出菜单元素。

AccessibilityPopupType POPUP_LIST = 1

弹出列表。

AccessibilityPopupType POPUP_TREE = 2

弹出树视图。

AccessibilityPopupType POPUP_DIALOG = 3

弹出对话框。


enum AccessibilityFlags: 🔗

AccessibilityFlags FLAG_HIDDEN = 0

元素对无障碍工具隐藏。

AccessibilityFlags FLAG_MULTISELECTABLE = 1

Element supports multiple item selection.

AccessibilityFlags FLAG_REQUIRED = 2

元素要求用户输入。

AccessibilityFlags FLAG_VISITED = 3

元素为已访问链接。

AccessibilityFlags FLAG_BUSY = 4

元素内容未就绪(例如正在加载)。

AccessibilityFlags FLAG_MODAL = 5

元素为模态窗口。

AccessibilityFlags FLAG_TOUCH_PASSTHROUGH = 6

屏幕阅读器处于触摸探索模式时,元素允许触摸事件穿透。

AccessibilityFlags FLAG_READONLY = 7

元素是文本框,包含可选择但只读的文本。

AccessibilityFlags FLAG_DISABLED = 8

元素已禁用。

AccessibilityFlags FLAG_CLIPS_CHILDREN = 9

元素会裁剪子级。


enum AccessibilityAction: 🔗

AccessibilityAction ACTION_CLICK = 0

单击动作,不设置回调参数。

AccessibilityAction ACTION_FOCUS = 1

聚焦动作,不设置回调参数。

AccessibilityAction ACTION_BLUR = 2

散焦动作,不设置回调参数。

AccessibilityAction ACTION_COLLAPSE = 3

折叠动作,不设置回调参数。

AccessibilityAction ACTION_EXPAND = 4

展开动作,不设置回调参数。

AccessibilityAction ACTION_DECREMENT = 5

下调动作,不设置回调参数。

AccessibilityAction ACTION_INCREMENT = 6

上调动作,不设置回调参数。

AccessibilityAction ACTION_HIDE_TOOLTIP = 7

隐藏工具提示动作,不设置回调参数。

AccessibilityAction ACTION_SHOW_TOOLTIP = 8

显示工具提示动作,不设置回调参数。

AccessibilityAction ACTION_SET_TEXT_SELECTION = 9

文本选区动作,回调参数被设置为 Dictionary,带有以下键:

  • "start_element" 选区起点的无障碍元素。

  • "start_char" 相对于选区起点无障碍元素的字符偏移量。

  • "end_element" 选区终点的无障碍元素。

  • "end_char" 相对于选区终点无障碍元素的字符偏移量。

AccessibilityAction ACTION_REPLACE_SELECTED_TEXT = 10

替换文本动作,回调参数被设置为 String,表示替换后的文本。

AccessibilityAction ACTION_SCROLL_BACKWARD = 11

向后滚动动作,不设置回调参数。

AccessibilityAction ACTION_SCROLL_DOWN = 12

向下滚动动作,回调参数被设置为 AccessibilityScrollUnit

AccessibilityAction ACTION_SCROLL_FORWARD = 13

向前滚动动作,不设置回调参数。

AccessibilityAction ACTION_SCROLL_LEFT = 14

向左滚动动作,回调参数被设置为 AccessibilityScrollUnit

AccessibilityAction ACTION_SCROLL_RIGHT = 15

向右滚动动作,回调参数被设置为 AccessibilityScrollUnit

AccessibilityAction ACTION_SCROLL_UP = 16

向上滚动动作,回调参数被设置为 AccessibilityScrollUnit

AccessibilityAction ACTION_SCROLL_INTO_VIEW = 17

滚动至视图动作,回调参数被设置为 AccessibilityScrollHint

AccessibilityAction ACTION_SCROLL_TO_POINT = 18

滚动至点动作,回调参数被设置为 Vector2,表示点的相对坐标。

AccessibilityAction ACTION_SET_SCROLL_OFFSET = 19

设置滚动偏移量动作,回调参数被设置为 Vector2,表示滚动偏移量。

AccessibilityAction ACTION_SET_VALUE = 20

设值动作,回调参数被设置为 String 或数字,表示新值。

AccessibilityAction ACTION_SHOW_CONTEXT_MENU = 21

显示上下文菜单动作,不设置回调参数。

AccessibilityAction ACTION_CUSTOM = 22

自定义动作,回调参数被设置为整数动作 ID。


enum AccessibilityLiveMode: 🔗

AccessibilityLiveMode LIVE_OFF = 0

表示不应展示对实时区域的更新。

AccessibilityLiveMode LIVE_POLITE = 1

表示对实时区域的更新应在下次机会时展示(例如讲完当前句子后)。

AccessibilityLiveMode LIVE_ASSERTIVE = 2

表示对实时区域的更新具有最高优先级,应立即展示。


enum AccessibilityScrollUnit: 🔗

AccessibilityScrollUnit SCROLL_UNIT_ITEM = 0

要滚动的量度。列表中的单个项目,一行文本。

AccessibilityScrollUnit SCROLL_UNIT_PAGE = 1

要滚动的量度。单页。


enum AccessibilityScrollHint: 🔗

AccessibilityScrollHint SCROLL_HINT_TOP_LEFT = 0

节点滚动到视图的首选位置。滚动容器的左上边缘。

AccessibilityScrollHint SCROLL_HINT_BOTTOM_RIGHT = 1

节点滚动到视图的首选位置。滚动容器的右下边缘。

AccessibilityScrollHint SCROLL_HINT_TOP_EDGE = 2

节点滚动到视图的首选位置。滚动容器的顶部边缘。

AccessibilityScrollHint SCROLL_HINT_BOTTOM_EDGE = 3

节点滚动到视图的首选位置。滚动容器的底部边缘。

AccessibilityScrollHint SCROLL_HINT_LEFT_EDGE = 4

节点滚动到视图的首选位置。滚动容器的左部边缘。

AccessibilityScrollHint SCROLL_HINT_RIGHT_EDGE = 5

节点滚动到视图的首选位置。滚动容器的右部边缘。


enum MouseMode: 🔗

MouseMode MOUSE_MODE_VISIBLE = 0

如果鼠标光标处于隐藏状态,则使其可见。

MouseMode MOUSE_MODE_HIDDEN = 1

如果鼠标光标是可见的,则使其隐藏。

MouseMode MOUSE_MODE_CAPTURED = 2

捕获鼠标。鼠标将被隐藏,其位置被锁定在窗口管理器窗口的中心。

注意:如果你想在这种模式下处理鼠标的移动,则需要使用 InputEventMouseMotion.relative

MouseMode MOUSE_MODE_CONFINED = 3

将鼠标光标限制在游戏窗口内,并使其可见。

MouseMode MOUSE_MODE_CONFINED_HIDDEN = 4

将鼠标光标限制在游戏窗口内,并使其隐藏。

MouseMode MOUSE_MODE_MAX = 5

MouseMode 的最大值。


enum ScreenOrientation: 🔗

ScreenOrientation SCREEN_LANDSCAPE = 0

默认横屏朝向。

ScreenOrientation SCREEN_PORTRAIT = 1

默认竖屏朝向。

ScreenOrientation SCREEN_REVERSE_LANDSCAPE = 2

倒横屏朝向(上下颠倒)。

ScreenOrientation SCREEN_REVERSE_PORTRAIT = 3

倒竖屏朝向(上下颠倒)。

ScreenOrientation SCREEN_SENSOR_LANDSCAPE = 4

自动横屏朝向(传感器决定默认或倒向)。

ScreenOrientation SCREEN_SENSOR_PORTRAIT = 5

自动竖屏朝向(传感器决定默认或倒向)。

ScreenOrientation SCREEN_SENSOR = 6

自动横屏或竖屏朝向(传感器决定默认或倒向)。


enum VirtualKeyboardType: 🔗

VirtualKeyboardType KEYBOARD_TYPE_DEFAULT = 0

默认文本虚拟键盘。

VirtualKeyboardType KEYBOARD_TYPE_MULTILINE = 1

多行虚拟键盘。

VirtualKeyboardType KEYBOARD_TYPE_NUMBER = 2

虚拟数字键盘,可用于 PIN 输入。

VirtualKeyboardType KEYBOARD_TYPE_NUMBER_DECIMAL = 3

虚拟数字键盘,可用于输入小数。

VirtualKeyboardType KEYBOARD_TYPE_PHONE = 4

虚拟手机号码键盘。

VirtualKeyboardType KEYBOARD_TYPE_EMAIL_ADDRESS = 5

带有附加键的虚拟键盘,可帮助输入电子邮件地址。

VirtualKeyboardType KEYBOARD_TYPE_PASSWORD = 6

用于输入密码的虚拟键盘。在大多数平台上,这应该会禁用自动完成和自动首字母大写功能。

注意:Web 平台不支持。与 KEYBOARD_TYPE_DEFAULT 的行为相同。

VirtualKeyboardType KEYBOARD_TYPE_URL = 7

带有附加键的虚拟键盘,可帮助输入 URL。


enum CursorShape: 🔗

CursorShape CURSOR_ARROW = 0

箭头光标形状。这是默认形状,没有指向 LineEditTextEdit 等会覆盖鼠标指针的节点时显示。

CursorShape CURSOR_IBEAM = 1

工字光标形状。默认在悬停于 LineEditTextEdit 等接受文本输入的控件时显示。

CursorShape CURSOR_POINTING_HAND = 2

指点的手形光标形状。默认在悬停于 LinkButtonRichTextLabel 中的 URL 标签时使用。

CursorShape CURSOR_CROSS = 3

十字光标。应当在用户需要精确瞄准某个元素时显示,例如矩形选择工具和颜色拾取器。

CursorShape CURSOR_WAIT = 4

等待光标。大多数光标主题会在箭头旁边显示旋转图标。旨在用于非阻塞操作(此时用户可以做其他事情)。另见 CURSOR_BUSY

CursorShape CURSOR_BUSY = 5

等待光标。大多数光标主题会把箭头替换为旋转图标。旨在用于阻塞操作(此时用户无法做其他事情)。另见 CURSOR_WAIT

CursorShape CURSOR_DRAG = 6

拖动的手形光标。在拖放操作过程中显示。另见 CURSOR_CAN_DROP

CursorShape CURSOR_CAN_DROP = 7

“能放下”光标。在拖放操作过程中,如果将鼠标悬停在可以接受拖放事件的 Control 上,就会显示这个光标。大多数光标主题会显示一只正在拖拽的手,旁边有一个箭头符号。另见 CURSOR_DRAG

CursorShape CURSOR_FORBIDDEN = 8

禁止光标。在拖放操作过程中,如果将鼠标悬停在不可接受拖放事件的 Control 上,就会显示这个光标。

CursorShape CURSOR_VSIZE = 9

垂直尺寸调整光标。只在用于悬停的 Control 可以用鼠标调整垂直大小时显示。另见 CURSOR_VSPLIT

CursorShape CURSOR_HSIZE = 10

水平尺寸调整光标。只在用于悬停的 Control 可以用鼠标调整水平大小时显示。另见 CURSOR_HSPLIT

CursorShape CURSOR_BDIAGSIZE = 11

辅助对角线尺寸调整光标(右上/左下)。只在但悬停的 Control 可以使用鼠标同时在两个轴上调整大小时显示。

CursorShape CURSOR_FDIAGSIZE = 12

主对角线尺寸调整光标(左上/右下)。只在当悬停的 Control 可以使用鼠标同时在两个轴上调整大小时显示。

CursorShape CURSOR_MOVE = 13

移动光标。应在能够使用鼠标移动被悬停 Control 时显示。

CursorShape CURSOR_VSPLIT = 14

垂直分割光标。当光标悬停于 VSplitContainer 等能够使用鼠标调整拆分的垂直大小的 Control 时显示。部分光标主题中,该光标的外观和 CURSOR_VSIZE 一致。

CursorShape CURSOR_HSPLIT = 15

水平分割光标。当光标悬停于 HSplitContainer 等能够使用鼠标调整拆分的水平大小的 Control 时显示。部分光标主题中,该光标的外观和 CURSOR_HSIZE 一致。

CursorShape CURSOR_HELP = 16

帮助光标。在大多数光标主题中显示为问号图标,不显示为鼠标光标。应在用户请求对下一次点击的元素提供帮助信息时使用。

CursorShape CURSOR_MAX = 17

代表 CursorShape 枚举的大小。


enum FileDialogMode: 🔗

FileDialogMode FILE_DIALOG_MODE_OPEN_FILE = 0

该原生对话框只允许选择一个文件。

FileDialogMode FILE_DIALOG_MODE_OPEN_FILES = 1

该原生对话框允许选择多个文件。

FileDialogMode FILE_DIALOG_MODE_OPEN_DIR = 2

该原生对话框只允许选择一个目录,不允许选择任何文件。

FileDialogMode FILE_DIALOG_MODE_OPEN_ANY = 3

该原生对话框允许选择一个文件或目录。

FileDialogMode FILE_DIALOG_MODE_SAVE_FILE = 4

当文件存在时,原生对话框会发出警告。


enum WindowMode: 🔗

WindowMode WINDOW_MODE_WINDOWED = 0

窗口模式,即 Window 不占据整个屏幕(除非设置为屏幕的大小)。

WindowMode WINDOW_MODE_MINIMIZED = 1

最小化窗口模式,即 Window 在窗口管理器的窗口列表中既不可见也不可用。通常发生在按下最小化按钮时。

WindowMode WINDOW_MODE_MAXIMIZED = 2

最大化窗口模式,即 Window 会占据整个屏幕区域,任务栏除外,并且会显示边框。通常发生在按下最大化按钮时。

WindowMode WINDOW_MODE_FULLSCREEN = 3

具有完整多窗口支持的全屏模式。

全屏窗口覆盖屏幕的整个显示区域,且没有任何装饰。显示的视频模式没有更改。

在 Android 上:将启用沉浸模式。

在 macOS 上:使用新桌面来显示正在运行的项目。

注意:无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,请确保你的项目在启用全屏模式时支持多种分辨率

WindowMode WINDOW_MODE_EXCLUSIVE_FULLSCREEN = 4

单窗口全屏模式。这种模式开销较小,但一次只能在给定屏幕上打开一个窗口(打开子窗口或切换应用程序会触发全屏过渡)。

全屏窗口会覆盖屏幕的整个显示区域,没有边框或装饰。显示视频模式没有改变。

注意:该模式可能不适用于屏幕录制软件。

在 Android 上:将启用沉浸模式。

在 Windows 上:取决于视频驱动程序,全屏过渡可能会导致屏幕暂时变黑。

在 macOS 上:一个新的桌面用于显示正在运行的项目。当鼠标指针悬停在屏幕边缘时,独占全屏模式会阻止 Dock 和 Menu 出现。

在 Linux(X11)上:独占全屏模式会绕过合成器。

在 Linux(Wayland)上:等价于 WINDOW_MODE_FULLSCREEN

注意:无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,确保你的项目在启用全屏模式时支持多个分辨率


enum WindowFlags: 🔗

WindowFlags WINDOW_FLAG_RESIZE_DISABLED = 0

该窗口不能通过拖动其调整大小的手柄来调整大小。但仍然可以使用 window_set_size() 调整窗口大小。全屏窗口会忽略该标志。

WindowFlags WINDOW_FLAG_BORDERLESS = 1

该窗口没有原生标题栏和其他装饰。全屏窗口会忽略该标志。

WindowFlags WINDOW_FLAG_ALWAYS_ON_TOP = 2

该窗口悬浮在所有其他窗口之上。全屏窗口会忽略该标志。

WindowFlags WINDOW_FLAG_TRANSPARENT = 3

该窗口背景可以是透明的。

注意:如果 is_window_transparency_available() 返回 false,则该标志无效。

注意:Linux (X11/Wayland)、macOS 和 Windows 上实现了透明支持,但可用性可能因 GPU 驱动程序、显示管理器和合成器功能而异。

注意:Android 系统已实现透明支持,但只能通过 ProjectSettings.display/window/per_pixel_transparency/allowed 启用。该标志在 Android 上无效。

WindowFlags WINDOW_FLAG_NO_FOCUS = 4

该窗口无法获得焦点。无聚焦窗口会忽略除鼠标点击外的所有输入。

WindowFlags WINDOW_FLAG_POPUP = 5

窗口是菜单或 OptionButton 下拉菜单的一部分。当窗口可见时,不能更改该标志。活动的弹出窗口会以独占的形式接收所有输入,但不会从其父窗口窃取焦点。当在其外部点击或切换应用程序时,弹出窗口将会自动关闭。 弹出窗口必须已经设置了临时父级(参见 window_set_transient())。

WindowFlags WINDOW_FLAG_EXTEND_TO_TITLE = 6

窗口内容扩展到窗口的全部大小。与无边框窗口不同,框架仍保持不变,可以调整窗口大小,标题栏是透明的,但具有最小化/最大化/关闭按钮。

使用 window_set_window_buttons_offset() 调整最小化/最大化/关闭按钮的偏移量。

使用 window_get_safe_title_margins() 确定标题栏下方未被装饰覆盖的区域。

注意:该标志仅在 macOS 上实现。

WindowFlags WINDOW_FLAG_MOUSE_PASSTHROUGH = 7

所有鼠标事件都被传递到同一应用程序的底层窗口。

WindowFlags WINDOW_FLAG_SHARP_CORNERS = 8

覆盖了窗口样式,强制使用尖角。

注意:该标志仅在 Windows(11)上实现。

WindowFlags WINDOW_FLAG_EXCLUDE_FROM_CAPTURE = 9

screen_get_image()screen_get_image_rect()screen_get_pixel() 的截图中排除该窗口。

注意:该标志在 macOS 和 Windows(10、20H1)上实现。

注意:设置该标志将阻止标准屏幕截图方法截取窗口图像,但保证其他应用无法截取图像。它不应用作 DRM 或安全措施。

WindowFlags WINDOW_FLAG_POPUP_WM_HINT = 10

向窗口管理器发出信号,表明该窗口应该是实现定义的“弹出窗口” (通常是浮动、无边框、不可平铺且不可移动的子窗口)。

WindowFlags WINDOW_FLAG_MINIMIZE_DISABLED = 11

禁用窗口的最小化按钮。

注意:该标志在 macOS 和 Windows 上实现。

WindowFlags WINDOW_FLAG_MAXIMIZE_DISABLED = 12

禁用窗口的最大化按钮。

注意:该标志在 macOS 和 Windows 上实现。

WindowFlags WINDOW_FLAG_MAX = 13

Represents the size of the WindowFlags enum.


enum WindowEvent: 🔗

WindowEvent WINDOW_EVENT_MOUSE_ENTER = 0

当鼠标指针进入该窗口时发送。

WindowEvent WINDOW_EVENT_MOUSE_EXIT = 1

当鼠标指针退出该窗口时发送。

WindowEvent WINDOW_EVENT_FOCUS_IN = 2

当窗口获得焦点时发送。

WindowEvent WINDOW_EVENT_FOCUS_OUT = 3

当窗口失去焦点时发送。

WindowEvent WINDOW_EVENT_CLOSE_REQUEST = 4

当用户试图关闭该窗口时发送(例如按下关闭按钮)。

WindowEvent WINDOW_EVENT_GO_BACK_REQUEST = 5

当按下设备的“后退”按钮时发送。

注意:该事件仅在 Android 上实现。

WindowEvent WINDOW_EVENT_DPI_CHANGE = 6

当窗口被移动到具有不同 DPI 的显示器上,或者显示器的 DPI 更改时发送。

注意:该标志仅在 macOS 和 Linux(Wayland)上实现。

WindowEvent WINDOW_EVENT_TITLEBAR_CHANGE = 7

当窗口标题栏的装饰改变时发送(例如 WINDOW_FLAG_EXTEND_TO_TITLE 被设置或窗口进入/退出全屏模式)。

注意:该标志仅在 macOS 上实现。

WindowEvent WINDOW_EVENT_FORCE_CLOSE = 8

Sent when the window has been forcibly closed by the display server. The window will immediately hide and clean any internal rendering references.

Note: This flag is implemented only on Linux (Wayland).


enum WindowResizeEdge: 🔗

WindowResizeEdge WINDOW_EDGE_TOP_LEFT = 0

窗口左上边缘。

WindowResizeEdge WINDOW_EDGE_TOP = 1

窗口上边缘。

WindowResizeEdge WINDOW_EDGE_TOP_RIGHT = 2

窗口右上边缘。

WindowResizeEdge WINDOW_EDGE_LEFT = 3

窗口左边缘。

WindowResizeEdge WINDOW_EDGE_RIGHT = 4

窗口右边缘。

WindowResizeEdge WINDOW_EDGE_BOTTOM_LEFT = 5

窗口左下边缘。

WindowResizeEdge WINDOW_EDGE_BOTTOM = 6

窗口下边缘。

WindowResizeEdge WINDOW_EDGE_BOTTOM_RIGHT = 7

窗口右下边缘。

WindowResizeEdge WINDOW_EDGE_MAX = 8

代表 WindowResizeEdge 枚举的大小。


enum VSyncMode: 🔗

VSyncMode VSYNC_DISABLED = 0

没有垂直同步,这意味着引擎将尽可能快地显示帧(可能会有可见的撕裂)。帧速率是未限制的(不考虑 Engine.max_fps)。

VSyncMode VSYNC_ENABLED = 1

默认的垂直同步模式,图像只在垂直消隐间隔显示(没有可见的撕裂)。帧速率受显示器刷新率的限制(不考虑 Engine.max_fps)。

VSyncMode VSYNC_ADAPTIVE = 2

当帧速率降至屏幕刷新率以下以减少卡顿(可能有可见的撕裂)时,行为类似于 VSYNC_DISABLED。否则,启用垂直同步以避免撕裂。帧速率受显示器刷新率的限制(不考虑 Engine.max_fps)。使用兼容渲染方法时表现得像 VSYNC_ENABLED

VSyncMode VSYNC_MAILBOX = 3

在垂直消隐间隔显示队列中的最新图像,同时对其他图像渲染(没有可见的撕裂)。帧速率是未限制的(不考虑 Engine.max_fps)。

虽然不能保证,但可以尽可能快地渲染图像,这可能会减少输入滞后(也称为“快速”V-Sync 模式)。VSYNC_MAILBOX 在渲染的帧数至少是显示器刷新率的两倍时效果最佳。使用兼容渲染方法时表现得像 VSYNC_ENABLED


enum HandleType: 🔗

HandleType DISPLAY_HANDLE = 0

显示器句柄:

  • Linux(X11):显示器的 X11::Display*

  • Linux(Wayland):显示器的 wl_display

  • Android:显示器的 EGLDisplay

HandleType WINDOW_HANDLE = 1

窗口句柄:

  • Windows:窗口的 HWND

  • Linux(X11):窗口的 X11::Window*

  • Linux(Wayland):窗口的 wl_surface

  • macOS:窗口的 NSWindow*

  • iOS:视图控制器的 UIViewController*

  • Android:Activity 的 jObject

HandleType WINDOW_VIEW = 2

窗口视图:

  • Windows:窗口的 HDC(仅适用于 Compatibility 渲染器)。

  • macOS:窗口主视图的 NSView*

  • iOS:窗口主视图的 UIView*

HandleType OPENGL_CONTEXT = 3

OpenGL 上下文(仅适用于 Compatibility 渲染器):

  • Windows:窗口的 HGLRC(原生 GL)或窗口的 EGLContext(ANGLE)。

  • Linux(X11):窗口的 GLXContext*

  • Linux(Wayland):窗口的 EGLContext

  • macOS:窗口的 NSOpenGLContext*(原生 GL)或窗口的 EGLContext(ANGLE)。

  • Android:窗口的 EGLContext

HandleType EGL_DISPLAY = 4

  • Windows:窗口的 EGLDisplay(ANGLE)。

  • macOS:窗口的 EGLDisplay(ANGLE)。

  • Linux(Wayland):窗口的 EGLDisplay

HandleType EGL_CONFIG = 5

  • Windows:窗口的 EGLConfig(ANGLE)。

  • macOS:窗口的 EGLConfig(ANGLE)。

  • Linux(Wayland):窗口的 EGLConfig


enum TTSUtteranceEvent: 🔗

TTSUtteranceEvent TTS_UTTERANCE_STARTED = 0

发言开始。

TTSUtteranceEvent TTS_UTTERANCE_ENDED = 1

发言顺利结束。

TTSUtteranceEvent TTS_UTTERANCE_CANCELED = 2

发言取消,或者 TTS 服务无法处理。

TTSUtteranceEvent TTS_UTTERANCE_BOUNDARY = 3

发言到达单词或句子的边界。


常量

INVALID_SCREEN = -1 🔗

指向一个不存在屏幕的 ID。如果没有屏幕与请求的结果相匹配,某些 DisplayServer 方法将返回这个 ID。

SCREEN_WITH_MOUSE_FOCUS = -4 🔗

表示包含鼠标指针的屏幕。

注意:在 Android、iOS、Web、Linux(Wayland)上,该常量始终代表索引 0 处的屏幕。

SCREEN_WITH_KEYBOARD_FOCUS = -3 🔗

表示包含具有键盘焦点的窗口的屏幕。

注意:在 Android、iOS、Web、Linux(Wayland)上,该常量始终代表索引 0 处的屏幕。

SCREEN_PRIMARY = -2 🔗

代表主屏幕。

注意:在 Android、iOS、Web、Linux(Wayland)上,该常量始终代表索引 0 处的屏幕。

SCREEN_OF_MAIN_WINDOW = -1 🔗

代表主窗口所在的屏幕。这通常是允许指定多个屏幕之一的函数中的默认值。

注意:在 Android、iOS、Web、Linux(Wayland)上,该常量始终代表索引 0 处的屏幕。

MAIN_WINDOW_ID = 0 🔗

主窗口的 ID,可以传给需要 window_id 的方法,该窗口由引擎生成。

INVALID_WINDOW_ID = -1 🔗

指向一个不存在窗口的 ID。如果没有窗口与请求的结果相匹配,某些 DisplayServer 方法将返回这个 ID。

INVALID_INDICATOR_ID = -1 🔗

引用不存在的应用程序状态指示器的 ID。


方法说明

RID accessibility_create_element(window_id: int, role: AccessibilityRole) 🔗

新建空的无障碍元素资源。

注意:每个 Node 都会自动创建并释放无障碍元素。一般来说不应手动调用该函数。


RID accessibility_create_sub_element(parent_rid: RID, role: AccessibilityRole, insert_pos: int = -1) 🔗

新建空的无障碍子元素资源。子元素可用于为非 Node 对象提供无障碍信息,例如列表项、表格单元格或菜单项。子元素在父元素被释放时会自动释放,也可以通过 accessibility_free_element() 方法提前释放。


RID accessibility_create_sub_text_edit_elements(parent_rid: RID, shaped_text: RID, min_height: float, insert_pos: int = -1, is_last_line: bool = false) 🔗

根据指定的文本缓冲区创建一个新的、空的无障碍访问子元素。子元素在父元素被释放时会自动释放,也可以提前使用 accessibility_free_element() 方法释放。

如果 is_last_linetrue,则不会在文本内容后附加换行符。对于多行文本框的最后一行和单行文本框,应将此参数设为 true


Variant accessibility_element_get_meta(id: RID) const 🔗

Returns the metadata of the accessibility element id.


void accessibility_element_set_meta(id: RID, meta: Variant) 🔗

Sets the metadata of the accessibility element id to meta.


void accessibility_free_element(id: RID) 🔗

Frees the accessibility element id created by accessibility_create_element(), accessibility_create_sub_element(), or accessibility_create_sub_text_edit_elements().


RID accessibility_get_window_root(window_id: int) const 🔗

返回操作系统原生窗口的主要无障碍元素。


bool accessibility_has_element(id: RID) const 🔗

如果 id 是有效的无障碍元素,则返回 true


int accessibility_screen_reader_active() const 🔗

Returns 1 if a screen reader, Braille display or other assistive app is active, 0 otherwise. Returns -1 if status is unknown.

Note: This method is implemented on Linux, macOS, and Windows.

Note: Accessibility debugging tools, such as Accessibility Insights for Windows, Accessibility Inspector (macOS), or AT-SPI Browser (Linux/BSD), do not count as assistive apps and will not affect this value. To test your project with these tools, set ProjectSettings.accessibility/general/accessibility_support to 1.


void accessibility_set_window_focused(window_id: int, focused: bool) 🔗

设置辅助应用的窗口聚焦状态。

注意:该方法在 Linux、macOS 和 Windows 上实现。

注意:仅限高级用户!Window 对象会自动调用此方法。


void accessibility_set_window_rect(window_id: int, rect_out: Rect2, rect_in: Rect2) 🔗

设置辅助应用的窗口外部边界(带装饰)和内部边界(不带装饰)。

注意:该方法在 Linux、macOS 和 Windows 上实现。

注意:仅限高级用户!Window 对象会自动调用此方法。


int accessibility_should_increase_contrast() const 🔗

如果应该使用高对比度用户界面主题则返回 1,否则返回 0。如果状态未知则返回 -1

注意:该方法在 Linux(X11/Wayland、GNOME)、macOS 和 Windows 上实现。


int accessibility_should_reduce_animation() const 🔗

如果应禁用闪烁、闪烁等可能导致光敏性癫痫用户发作的动态内容则返回 1,否则返回 0。如果状态未知则返回 -1

注意:该方法在 macOS 和 Windows 上实现。


int accessibility_should_reduce_transparency() const 🔗

如果应禁用背景图像、透明度等可能降低前景与背景对比度的特性则返回 1,否则返回 0。如果状态未知则返回 -1

注意:该方法在 macOS 和 Windows 上实现。


void accessibility_update_add_action(id: RID, action: AccessibilityAction, callable: Callable) 🔗

添加无障碍动作的回调(可以通过使用特殊的屏幕阅读器命令或盲文显示器上的按钮执行的动作),并将该动作标记为支持。动作回调接收一个 Variant 参数,取值由动作类型决定。


void accessibility_update_add_child(id: RID, child_id: RID) 🔗

添加子级无障碍元素。

注意:Node 子节点和子元素会自动添加至子级列表。


void accessibility_update_add_custom_action(id: RID, action_id: int, action_description: String) 🔗

添加对自定义无障碍动作的支持。action_id 会作为参数传递给 ACTION_CUSTOM 动作的回调。


添加由该元素控制的元素。


添加描述该元素的元素。


添加补充该元素的元素。


添加该元素流入的元素。


添加作为该元素标签的元素。


添加同一单选组中的元素。

注意:单选组中的每个元素都应该调用该方法,使用其他元素作为 related_id


void accessibility_update_set_active_descendant(id: RID, other_id: RID) 🔗

添加该元素的活动派生元素。


void accessibility_update_set_background_color(id: RID, color: Color) 🔗

设置元素的背景色。


void accessibility_update_set_bounds(id: RID, p_rect: Rect2) 🔗

设置元素的边界框,相对于节点的位置。


void accessibility_update_set_checked(id: RID, checekd: bool) 🔗

设置元素的复选状态。


void accessibility_update_set_classname(id: RID, classname: String) 🔗

设置元素的类名。


void accessibility_update_set_color_value(id: RID, color: Color) 🔗

设置元素的颜色值。


void accessibility_update_set_description(id: RID, description: String) 🔗

设置元素的无障碍描述。


void accessibility_update_set_error_message(id: RID, other_id: RID) 🔗

设置包含该元素错误消息的元素。


void accessibility_update_set_extra_info(id: RID, name: String) 🔗

设置为元素名添加的元素无障碍额外信息。


void accessibility_update_set_flag(id: RID, flag: AccessibilityFlags, value: bool) 🔗

设置元素的标志。


void accessibility_update_set_focus(id: RID) 🔗

设置当前聚焦的元素。


void accessibility_update_set_foreground_color(id: RID, color: Color) 🔗

设置元素的前景色。


设置链接的目标元素。


void accessibility_update_set_language(id: RID, language: String) 🔗

设置元素的文本语言。


void accessibility_update_set_list_item_count(id: RID, size: int) 🔗

设置列表中的项目数。


void accessibility_update_set_list_item_expanded(id: RID, expanded: bool) 🔗

设置列表项/树项目的展开状态。


void accessibility_update_set_list_item_index(id: RID, index: int) 🔗

设置元素在列表中的位置。


void accessibility_update_set_list_item_level(id: RID, level: int) 🔗

设置元素在列表中的层级。


void accessibility_update_set_list_item_selected(id: RID, selected: bool) 🔗

设置列表项/树项目的选中状态。


void accessibility_update_set_list_orientation(id: RID, vertical: bool) 🔗

设置列表元素的朝向。


void accessibility_update_set_live(id: RID, live: AccessibilityLiveMode) 🔗

设置实时区域更新的优先级。


void accessibility_update_set_member_of(id: RID, group_id: RID) 🔗

将元素设置为分组的成员。


void accessibility_update_set_name(id: RID, name: String) 🔗

设置元素的无障碍名称。


void accessibility_update_set_next_on_line(id: RID, other_id: RID) 🔗

设置位于同一行的下一个元素。


void accessibility_update_set_num_jump(id: RID, jump: float) 🔗

设置数值的跳变。


void accessibility_update_set_num_range(id: RID, min: float, max: float) 🔗

设置数值的范围。


void accessibility_update_set_num_step(id: RID, step: float) 🔗

设置数值的步长。


void accessibility_update_set_num_value(id: RID, position: float) 🔗

设置数值。


void accessibility_update_set_placeholder(id: RID, placeholder: String) 🔗

设置占位文本。


void accessibility_update_set_popup_type(id: RID, popup: AccessibilityPopupType) 🔗

设置弹出按钮的弹出类型。


void accessibility_update_set_previous_on_line(id: RID, other_id: RID) 🔗

设置位于同一行的上一个元素。


void accessibility_update_set_role(id: RID, role: AccessibilityRole) 🔗

设置元素的无障碍角色。


void accessibility_update_set_role_description(id: RID, description: String) 🔗

设置元素的无障碍角色描述文本。


void accessibility_update_set_scroll_x(id: RID, position: float) 🔗

设置滚动条 X 位置。


void accessibility_update_set_scroll_x_range(id: RID, min: float, max: float) 🔗

设置滚动条 X 范围。


void accessibility_update_set_scroll_y(id: RID, position: float) 🔗

设置滚动条 Y 位置。


void accessibility_update_set_scroll_y_range(id: RID, min: float, max: float) 🔗

设置滚动条 Y 范围。


void accessibility_update_set_shortcut(id: RID, shortcut: String) 🔗

设置元素使用的键盘快捷键列表。


void accessibility_update_set_state_description(id: RID, description: String) 🔗

设置当前复选状态的人类可读描述。


void accessibility_update_set_table_cell_position(id: RID, row_index: int, column_index: int) 🔗

设置单元格在表格中的位置。


void accessibility_update_set_table_cell_span(id: RID, row_span: int, column_span: int) 🔗

设置单元格的跨行/跨列。


void accessibility_update_set_table_column_count(id: RID, count: int) 🔗

设置表格中的列数。


void accessibility_update_set_table_column_index(id: RID, index: int) 🔗

设置列的位置。


void accessibility_update_set_table_row_count(id: RID, count: int) 🔗

设置表格中的行数。


void accessibility_update_set_table_row_index(id: RID, index: int) 🔗

设置行在表格中的位置。


void accessibility_update_set_text_align(id: RID, align: HorizontalAlignment) 🔗

设置元素的文本对齐。


void accessibility_update_set_text_decorations(id: RID, underline: bool, strikethrough: bool, overline: bool) 🔗

设置文本的下划线、上划线、删除线。


void accessibility_update_set_text_orientation(id: RID, vertical: bool) 🔗

设置文本朝向。


void accessibility_update_set_text_selection(id: RID, text_start_id: RID, start_char: int, text_end_id: RID, end_char: int) 🔗

设置文本框中的文本选择。text_start_idtext_end_id 应当是使用 accessibility_create_sub_text_edit_elements() 创建的元素。字符偏移量相对于对应的元素。


void accessibility_update_set_tooltip(id: RID, tooltip: String) 🔗

设置工具提示文本。


void accessibility_update_set_transform(id: RID, transform: Transform2D) 🔗

设置元素的 2D 变换。


void accessibility_update_set_url(id: RID, url: String) 🔗

设置链接 URL。


void accessibility_update_set_value(id: RID, value: String) 🔗

设置元素文本值。


void beep() const 🔗

播放操作系统的“哔”声,需要操作系统支持。因为发出声音的是操作系统,所以即便应用程序被静音也能听到“哔”声。这一功能可能被用户在操作系统层面禁用。

注意:该方法在 macOS、Linux(X11/Wayland)和 Windows。


String clipboard_get() const 🔗

如果可能,将用户的剪贴板作为字符串返回。


Image clipboard_get_image() const 🔗

如果可能,将用户的剪贴板作为图像返回。

注意:该方法使用复制的像素数据(例如来自图像编辑软件或 Web 浏览器的数据),而不是从文件资源管理器复制的图像文件。


String clipboard_get_primary() const 🔗

如果可能的话,将用户的剪贴板作为字符串返回。这是当用户在任何应用程序中选择文本时设置的剪贴板,而不是在按下 Ctrl + C 时设置的。然后可以通过在支持主剪贴板机制的任何应用程序中,通过点击鼠标中键来粘贴该剪贴板数据。

注意:这个方法只在 Linux(X11/Wayland)上实现。


bool clipboard_has() const 🔗

如果用户的剪贴板中有文本内容,则返回 true


bool clipboard_has_image() const 🔗

如果用户的剪贴板中有图像内容,则返回 true


void clipboard_set(clipboard: String) 🔗

将用户的剪贴板内容设置为给定的字符串。


void clipboard_set_primary(clipboard_primary: String) 🔗

将用户的主剪贴板内容设置为给定的字符串。这是用户在应用程序中选中文本时设置的剪贴板,不是按 Ctrl + C 时设置的。设置后可以在任何支持主剪贴板机制的应用程序中通过点击鼠标中键粘贴剪贴板数据。

注意:这个方法只在 Linux(X11/Wayland)上实现。


bool color_picker(callback: Callable) 🔗

显示操作系统原生取色器。

回调的参数为:status: bool, color: Color

注意:如果显示服务器具有 FEATURE_NATIVE_COLOR_PICKER 功能,则该方法已被实现。

注意:该方法仅在 Linux(X11/Wayland)上实现。


int create_status_indicator(icon: Texture2D, tooltip: String, callback: Callable) 🔗

新建应用程序状态指示器,可以指定图标、工具提示以及激活回调。

callback 应该接受两个参数:按下的鼠标按键(MouseButton 常量)以及点击位置(屏幕坐标 Vector2i)。


CursorShape cursor_get_shape() const 🔗

返回默认鼠标光标形状,由 cursor_set_shape() 设置。


void cursor_set_custom_image(cursor: Resource, shape: CursorShape = 0, hotspot: Vector2 = Vector2(0, 0)) 🔗

Sets a custom mouse cursor image for the given shape. This means the user's operating system and mouse cursor theme will no longer influence the mouse cursor's appearance.

cursor can be either a Texture2D or an Image, and it should not be larger than 256×256 to display correctly. Optionally, hotspot can be set to offset the image's position relative to the click point. By default, hotspot is set to the top-left corner of the image. See also cursor_set_shape().

Note: On Web, calling this method every frame can cause the cursor to flicker.


void cursor_set_shape(shape: CursorShape) 🔗

设置默认的鼠标光标形状。光标的外观将根据用户的操作系统和鼠标光标主题而变化。另见 cursor_get_shape()cursor_set_custom_image()


void delete_status_indicator(id: int) 🔗

移除应用程序状态指示器。


Error dialog_input_text(title: String, description: String, existing_text: String, callback: Callable) 🔗

显示文本输入对话框,该对话框使用操作系统原生外观。callback 应接受包含文本字段内容的单个 String 参数。

注意:如果显示服务器具有 FEATURE_NATIVE_DIALOG_INPUT 功能,则实现该方法。支持的平台包括 macOS、Windows 和 Android。


Error dialog_show(title: String, description: String, buttons: PackedStringArray, callback: Callable) 🔗

显示文本对话框,该对话框使用操作系统原生外观。callback 应接受与按下按钮的索引相对应的单个 int 参数。

注意:如果显示服务器具有 FEATURE_NATIVE_DIALOG 功能,则实现该方法。支持的平台包括 macOS、Windows 和 Android。


void enable_for_stealing_focus(process_id: int) 🔗

让进程 PID process_id 窃取该窗口的焦点。换句话说,会禁用操作系统对指定 PID 的焦点窃取保护。

注意:该方法仅在 Windows 上实现。


Error file_dialog_show(title: String, current_directory: String, filename: String, show_hidden: bool, mode: FileDialogMode, filters: PackedStringArray, callback: Callable, parent_window_id: int = 0) 🔗

显示操作系统原生对话框,用于选择文件系统中的文件或目录。

filters 数组中的每个筛选字符串的格式应类似于:*.png,*.jpg,*.jpeg;图像文件;image/png,image/jpeg。过滤器的描述文本是可选的,可以省略。建议同时设置文件扩展名和 MIME 类型。另见 FileDialog.filters

回调的参数如下:status: bool, selected_paths: PackedStringArray, selected_filter_index: int在 Android 平台上,第三个回调参数(selected_filter_index)始终为 0

注意:此方法仅在显示服务器支持 FEATURE_NATIVE_DIALOG 特性时可用。支持的平台包括 Linux(X11/Wayland)、Windows、macOS 和 Android(API 级别 29+)。

注意:current_directory 可能会被忽略。

注意:嵌入文件对话框和 Windows 文件对话框仅支持文件扩展名过滤,而 Android、Linux 和 macOS 的文件对话框还支持 MIME 类型过滤。

注意:在 Android 和 Linux 上,show_hidden 无效。

注意:在 Android 和 macOS 上,原生文件对话框没有标题。

注意:在 macOS 上,沙盒应用程序将保存安全范围书签,以便在多次会话期间保持对已打开文件夹的访问权限。可使用 OS.get_granted_permissions() 获取已保存书签的列表。

注意:在 Android 上,此方法使用 Android 存储访问框架(SAF)。

文件选择器返回的是一个 URI 而非文件系统路径。此 URI 可直接传递给 FileAccess 以执行读写操作。

当使用 FILE_DIALOG_MODE_OPEN_DIR 模式时,会返回一个授予对所选目录完全访问权限的树形 URI。在该目录内进行文件操作时,可将形如 treeUri#相对/路径/到/文件 的路径传递给 FileAccess

为避免每次应用重启后重复打开文件选择器,可按如下方式获取持久化的 URI 权限:

val uri = "content://com.android..." # 所选文件或文件夹的 URI。
val persist = true # 设为 false 可释放持久化权限。
var android_runtime = Engine.get_singleton("AndroidRuntime")
android_runtime.updatePersistableUriPermission(uri, persist)

只要目录未被移动、重命名或删除,持久化的 URI 权限将在应用重启后保持有效。


Error file_dialog_with_options_show(title: String, current_directory: String, root: String, filename: String, show_hidden: bool, mode: FileDialogMode, filters: PackedStringArray, options: Array[Dictionary], callback: Callable, parent_window_id: int = 0) 🔗

Displays OS native dialog for selecting files or directories in the file system with additional user selectable options.

Each filter string in the filters array should be formatted like this: *.png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg. The description text of the filter is optional and can be omitted. It is recommended to set both file extension and MIME type. See also FileDialog.filters.

options is array of Dictionarys with the following keys:

  • "name" - option's name String.

  • "values" - PackedStringArray of values. If empty, boolean option (check box) is used.

  • "default" - default selected option index (int) or default boolean value (bool).

Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary.

Note: This method is implemented if the display server has the FEATURE_NATIVE_DIALOG_FILE_EXTRA feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS.

Note: current_directory might be ignored.

Note: Embedded file dialogs and Windows file dialogs support only file extensions, while Android, Linux, and macOS file dialogs also support MIME types.

Note: On Linux (X11), show_hidden is ignored.

Note: On macOS, native file dialogs have no title.

Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use OS.get_granted_permissions() to get a list of saved bookmarks.


void force_process_and_drop_events() 🔗

强制窗口管理器进行处理,会忽略所有 InputEvent。另见 process_events()

注意:这个方法在 Windows 和 macOS 上实现。


Color get_accent_color() const 🔗

返回操作系统主题色。如果主题色未知则返回 Color(0, 0, 0, 0)

注意:该方法在 macOS、Windows、Android、Linux(X11/Wayland)上实现。


Color get_base_color() const 🔗

返回操作系统主题基色(默认控件背景)。如果基色未知,则返回 Color(0, 0, 0, 0)

注意:该方法在 macOS、Windows 和 Android 上实现。


Array[Rect2] get_display_cutouts() const 🔗

返回 Rect2Array,其中每个都是显示切口或凹口的边界矩形。这些是相机和传感器使用的无边框屏幕上的非功能区域。如果设备没有切口,则返回一个空数组。另见 get_display_safe_area()

注意:目前仅在 Android 上实现。其他平台将返回一个空数组,即使它们确实有显示切口或凹口。


Rect2i get_display_safe_area() const 🔗

返回显示器上未被遮挡的区域,交互式空间应当在此区域中渲染。另见 get_display_cutouts()

注意:当前仅在 Android 和 iOS 上实现。其他平台上会使用 screen_get_usable_rect(SCREEN_OF_MAIN_WINDOW) 作为回退返回。另见 screen_get_usable_rect()


int get_keyboard_focus_screen() const 🔗

返回包含具有键盘焦点的窗口的屏幕索引,如果没有被聚焦的窗口则返回主屏幕。

注意:该方法在 Linux/X11、macOS、Windows 上实现。该方法在其他平台上始终返回主屏幕。


String get_name() const 🔗

返回当前使用的 DisplayServer 的名称。大多数操作系统只有一种 DisplayServer,但 Linux 可以使用多种 DisplayServer(目前有 X11 和 Wayland 两种)。

内置显示服务器的名称有 WindowsmacOSX11(Linux)、Wayland(Linux)、AndroidiOSweb(HTML5)、headless(使用 --headless 命令行参数启动)。


int get_primary_screen() const 🔗

Returns the index of the primary screen.

Note: This method is implemented on Linux/X11, macOS, and Windows. On other platforms, this method always returns 0.


int get_screen_count() const 🔗

返回可用显示器的数量。

注意:该方法在 Linux(X11 和 Wayland)、macOS、Windows 上实现。该方法在其他平台上始终返回 1


int get_screen_from_rect(rect: Rect2) const 🔗

返回与给定矩形重叠最多的屏幕的索引。如果矩形没有与任何屏幕重叠或矩形面积为零,则返回 INVALID_SCREEN


bool get_swap_cancel_ok() 🔗

如果对话框中的确定取消按钮进行了交换,则返回 true。在 Windows 上默认启用,从而遵循界面规范,可以使用 ProjectSettings.gui/common/swap_cancel_ok 开关。

注意:dialog_show() 等生成的原生对话框不受影响。


int get_window_at_screen_position(position: Vector2i) const 🔗

返回位于指定屏幕位置 position 的窗口 ID(单位为像素)。使用多个监视器时,屏幕位置是相对于虚拟桌面区域的位置。如果多监视器中使用了不同的屏幕分辨率或朝向,原点有可能位于所有显示器之外,类似于:

* (0, 0)        +-------+
                |       |
+-------------+ |       |
|             | |       |
|             | |       |
+-------------+ +-------+

PackedInt32Array get_window_list() const 🔗

返回属于该进程的 Godot 窗口 ID 列表。

注意:这个列表中不含原生对话框。


int global_menu_add_check_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的可勾选菜单项,显示的文本为 label

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_icon_check_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的可勾选菜单项,显示的文本为 label,图标为 icon

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_icon_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的菜单项,显示的文本为 label,图标为 icon

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_icon_radio_check_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的单选菜单项,显示的文本为 label,图标为 icon

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:单选菜单项只负责显示选中标记,并没有任何内置检查行为,必须手动进行选中、取消选中的操作。关于如何进行控制的更多信息见 global_menu_set_item_checked()

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的菜单项,显示的文本为 label

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_multistate_item(menu_root: String, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的菜单项,显示的文本为 label

与常规的二态菜单项不同,多状态菜单项的状态可以多于两个,由 max_states 定义。每点击或激活该菜单项一次,状态就会加一。默认值由 default_state 定义。

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:默认情况下不会展示当前菜单项的状态,应该手动更改。

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_radio_check_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加新的单选菜单项,显示的文本为 label

返回插入菜单项的索引,不保证与 index 的值相同。

还可以定义键盘快捷键 accelerator,按下后即便该菜单按钮尚未打开,也会进行触发。accelerator 通常是将 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:单选菜单项只负责显示选中标记,并没有任何内置检查行为,必须手动进行选中、取消选中的操作。关于如何进行控制的更多信息见 global_menu_set_item_checked()

注意:callbackkey_callback Callable 均只接受一个 Variant 参数,传入 Callable 的参数是传给 tag 的参数。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_separator(menu_root: String, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加分隔符。分隔符也拥有索引。

返回插入菜单项的索引,不保证与 index 的值相同。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

int global_menu_add_submenu_item(menu_root: String, label: String, submenu: String, index: int = -1) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

向 ID 为 menu_root 的全局菜单添加作为子菜单的菜单项。submenu 参数为全局菜单根菜单项的 ID,会在点击该菜单项时显示

返回插入菜单项的索引,不保证与 index 的值相同。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

void global_menu_clear(menu_root: String) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

移除 ID 为 menu_root 的全局菜单中的所有菜单项。

注意:该方法仅在 macOS 上实现。

支持的系统菜单 ID:

"_main" - 主菜单(macOS)。
"_dock" - 程序坞弹出菜单(macOS)。
"_apple" - Apple 菜单(macOS,在“服务”之前添加的自定义项目)。
"_window" - 窗口菜单(macOS,“将所有内容置于前面”之后添加的自定义项目)。
"_help" - 帮助菜单 (macOS)。

Key global_menu_get_item_accelerator(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的快捷键。快捷键是能够激活该菜单项的特殊按键组合,无论该控件是否有焦点。

注意:该方法仅在 macOS 上实现。


Callable global_menu_get_item_callback(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的回调。

注意:该方法仅在 macOS 上实现。


int global_menu_get_item_count(menu_root: String) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回 ID 为 menu_root 的全局菜单中菜单项的数量。

注意:该方法仅在 macOS 上实现。


Texture2D global_menu_get_item_icon(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的图标。

注意:该方法仅在 macOS 上实现。


int global_menu_get_item_indentation_level(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的水平偏移量。

注意:该方法仅在 macOS 上实现。


int global_menu_get_item_index_from_tag(menu_root: String, tag: Variant) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回标签为指定的 tag 的菜单项的索引。引擎会自动为每个菜单项分配索引,无法手动设置。

注意:该方法仅在 macOS 上实现。


int global_menu_get_item_index_from_text(menu_root: String, text: String) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回文本为指定的 text 的菜单项的索引。引擎会自动为每个菜单项分配索引,无法手动设置。

注意:该方法仅在 macOS 上实现。


Callable global_menu_get_item_key_callback(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的快捷键回调。

注意:该方法仅在 macOS 上实现。


int global_menu_get_item_max_states(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回多状态项的状态数。详见 global_menu_add_multistate_item()

注意:该方法仅在 macOS 上实现。


int global_menu_get_item_state(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回多状态项的状态。详见 global_menu_add_multistate_item()

注意:该方法仅在 macOS 上实现。


String global_menu_get_item_submenu(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的子菜单 ID。关于如何添加子菜单的更多信息见 global_menu_add_submenu_item()

注意:该方法仅在 macOS 上实现。


Variant global_menu_get_item_tag(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回指定菜单项的元数据,可能是任何类型。元数据可以使用 global_menu_set_item_tag() 设置,可以方法地为菜单项关联上下文数据。

注意:该方法仅在 macOS 上实现。


String global_menu_get_item_text(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项的文本。

注意:该方法仅在 macOS 上实现。


String global_menu_get_item_tooltip(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回索引为 idx 的菜单项所关联的工具提示。

注意:该方法仅在 macOS 上实现。


Dictionary global_menu_get_system_menu_roots() const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

返回受支持的系统菜单 ID 和名称的字典。

注意:该方法仅在 macOS 上实现。


bool global_menu_is_item_checkable(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

如果索引为 idx 的菜单项能够以某种方式选中,即有复选框或单选按钮,则返回 true

注意:该方法仅在 macOS 上实现。


bool global_menu_is_item_checked(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

如果索引为 idx 的菜单项处于选中状态,则返回 true

注意:该方法仅在 macOS 上实现。


bool global_menu_is_item_disabled(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

如果索引为 idx 的菜单项处于禁用状态,则返回 true。禁用状态下无法被选中,也无法激活动作。

关于如何禁用菜单项的更多信息见 global_menu_set_item_disabled()

注意:该方法仅在 macOS 上实现。


bool global_menu_is_item_hidden(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

如果索引为 idx 的菜单项被隐藏,则返回 true

关于如何隐藏菜单项的更多信息见 global_menu_set_item_hidden()

注意:该方法仅在 macOS 上实现。


bool global_menu_is_item_radio_checkable(menu_root: String, idx: int) const 🔗

已弃用: Use NativeMenu or PopupMenu instead.

如果索引为 idx 的菜单项为单选按钮风格,则返回 true

注意:仅为装饰作用;必须自行为单选组添加选中、取消选中的逻辑。

注意:该方法仅在 macOS 上实现。


void global_menu_remove_item(menu_root: String, idx: int) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

从全局菜单 menu_root 移除索引为 idx 的菜单项。

注意:位置在被移除菜单项之后的菜单项的索引号都会减一。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_accelerator(menu_root: String, idx: int, keycode: Key) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的快捷键。keycode 可以是单一 Key,也可以是 KeyModifierMaskKey 用按位或操作进行的组合,例如 KEY_MASK_CTRL | KEY_ACtrl + A)。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_callback(menu_root: String, idx: int, callback: Callable) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的回调。回调会在按下菜单项时发出。

注意:callback Callable 只接受一个 Variant 参数,传入 Callable 的参数是创建菜单项时传给 tag 参数的值。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_checkable(menu_root: String, idx: int, checkable: bool) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项是否为复选框。如果为 false,则会将该菜单项的类型设置为纯文本。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_checked(menu_root: String, idx: int, checked: bool) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的选中状态。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_disabled(menu_root: String, idx: int, disabled: bool) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

启用/禁用索引为 idx 的菜单项。禁用状态下无法被选中,也无法激活动作。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_hidden(menu_root: String, idx: int, hidden: bool) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

隐藏/显示索引为 idx 的菜单项。当它被隐藏时,项目不会出现在菜单中,并且无法调用其操作。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_hover_callbacks(menu_root: String, idx: int, callback: Callable) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的回调。回调会在菜单项被悬停时发出。

注意:callback Callable 需要接受一个 Variant 参数,传入 Callable 的参数是创建菜单项时传给 tag 参数的值。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_icon(menu_root: String, idx: int, icon: Texture2D) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

替换指定索引 idxTexture2D 图标。

注意:该方法仅在 macOS 上实现。

注意:该方法不支持 macOS 的“_dock”菜单项。


void global_menu_set_item_indentation_level(menu_root: String, idx: int, level: int) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的水平偏移量。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_key_callback(menu_root: String, idx: int, key_callback: Callable) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的回调。回调会在激活快捷键时发出。

注意:key_callback Callable 只接受一个 Variant 参数,传入 Callable 的参数是创建菜单项时传给 tag 参数的值。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_max_states(menu_root: String, idx: int, max_states: int) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置多状态项的状态数。详见 global_menu_add_multistate_item()

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_radio_checkable(menu_root: String, idx: int, checkable: bool) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

将索引为 idx 的菜单项设置为单选按钮风格。如果为 false,则会将该菜单项的类型设置为纯文本。

注意:仅为装饰作用;必须自行为单选组添加选中、取消选中的逻辑。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_state(menu_root: String, idx: int, state: int) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置多状态项的状态。详见 global_menu_add_multistate_item()

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_submenu(menu_root: String, idx: int, submenu: String) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的子菜单。子菜单是某个全局菜单根菜单项的 ID,点击该菜单项时会显示子菜单。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_tag(menu_root: String, idx: int, tag: Variant) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置指定菜单项的元数据,可以是任何类型。后续可以使用 global_menu_get_item_tag() 获取,可以方法地为菜单项关联上下文数据。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_text(menu_root: String, idx: int, text: String) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的文本。

注意:该方法仅在 macOS 上实现。


void global_menu_set_item_tooltip(menu_root: String, idx: int, tooltip: String) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

设置索引为 idx 的菜单项的工具提示 String

注意:该方法仅在 macOS 上实现。


void global_menu_set_popup_callbacks(menu_root: String, open_callback: Callable, close_callback: Callable) 🔗

已弃用: Use NativeMenu or PopupMenu instead.

注册当菜单分别即将显示或关闭时发出的可调用对象。回调方法应该没有参数。


bool has_additional_outputs() const 🔗

如果已通过 register_additional_output() 注册了任何额外输出,则返回 true


bool has_feature(feature: Feature) const 🔗

如果当前的 DisplayServer 支持指定的特性 feature,则返回 true,否则返回 false


bool has_hardware_keyboard() const 🔗

如果连接了物理键盘,则返回 true

注意:该方法在 Android 和 iOS 上实现。该方法在其他平台上始终返回 true


void help_set_search_callbacks(search_callback: Callable, action_callback: Callable) 🔗

设置原生帮助系统搜索回调。

search_callback 的参数是 String search_string, int result_limit,返回的是包含一对对“key、显示名称”的 Dictionary。用户在帮助菜单中输入搜索内容的时候就会调用这个回调。

action_callback 的参数是 String key。用户在帮助菜单中选择某个搜索结果时就会调用这个回调。

注意:该方法仅在 macOS 上实现。


Vector2i ime_get_selection() const 🔗

返回输入法编辑器编组字符串中选中的文本,Vector2ix 分量为光标的位置,y 则为所选项的长度。

注意:该方法仅在 macOS 上实现。


String ime_get_text() const 🔗

返回输入法编辑器窗口中的编组字符串。

注意:该方法仅在 macOS 上实现。


bool is_dark_mode() const 🔗

如果操作系统正在使用暗黑模式,则返回 true

注意:该方法在 Android、iOS、macOS、Windows 和 Linux(X11/Wayland)上实现。


bool is_dark_mode_supported() const 🔗

如果操作系统支持暗黑模式,则返回 true

注意:该方法在 Android、iOS、macOS、Windows 和 Linux(X11/Wayland)上实现。


bool is_touchscreen_available() const 🔗

如果触摸事件可用(Android 或 iOS)、在 Web 平台上检测到该功能或如果 ProjectSettings.input_devices/pointing/emulate_touch_from_mousetrue 时,则返回 true


bool is_window_transparency_available() const 🔗

如果窗口背景可以设为透明,则返回 true。如果 ProjectSettings.display/window/per_pixel_transparency/allowed 被设置为 false,或者如果渲染器或 OS 合成器不支持透明,则该方法将返回 false


int keyboard_get_current_layout() const 🔗

返回激活的键盘布局的索引。

注意:本方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


Key keyboard_get_keycode_from_physical(keycode: Key) const 🔗

将物理(美式 QWERTY)键码 keycode 转换为激活键盘布局中的键码。

注意:本方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


Key keyboard_get_label_from_physical(keycode: Key) const 🔗

将物理(美式 QWERTY)键码 keycode 转换为活动键盘布局中的按键上印刷的本地化标签。

注意:该方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


int keyboard_get_layout_count() const 🔗

返回键盘布局的数量。

注意:本方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


String keyboard_get_layout_language(index: int) const 🔗

返回位于 index 位置的键盘布局的 ISO-639/BCP-47 语言代码。

注意:本方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


String keyboard_get_layout_name(index: int) const 🔗

返回位于 index 位置的键盘布局的本地化名称。

注意:本方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


void keyboard_set_current_layout(index: int) 🔗

设置激活的键盘布局。

注意:本方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


BitField[MouseButtonMask] mouse_get_button_state() const 🔗

以位掩码的形式返回当前鼠标按键的状态(各个按钮是否处于按下状态)。如果同时按下了多个按键,则会同时设置多个比特位。等价于 Input.get_mouse_button_mask()


MouseMode mouse_get_mode() const 🔗

返回当前的鼠标模式。另见 mouse_set_mode()


Vector2i mouse_get_position() const 🔗

返回鼠标光标的当前位置,使用屏幕坐标。


void mouse_set_mode(mouse_mode: MouseMode) 🔗

设置当前的鼠标模式。另见 mouse_get_mode()


void process_events() 🔗

执行窗口管理器处理,包括输入的清空。另见 force_process_and_drop_events()Input.flush_buffered_events()Input.use_accumulated_input


void register_additional_output(object: Object) 🔗

注册一个 Object,表示除了普通窗口之外还将渲染的额外输出。Object 仅用作标识符,稍后可将其传递给 unregister_additional_output()

这可用于防止 Godot 在没有可见普通窗口时跳过渲染。


int screen_get_dpi(screen: int = -1) const 🔗

返回指定屏幕的密度,单位为每英寸点数。如果 screen 无效则返回对应平台的默认值。

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:在 macOS 上,如果使用小数显示缩放模式,则返回值不准确。

注意:在 Android 设备上,实际屏幕密度分为六种通用密度:

   ldpi - 120 dpi
   mdpi - 160 dpi
   hdpi - 240 dpi
  xhdpi - 320 dpi
 xxhdpi - 480 dpi
xxxhdpi - 640 dpi

注意:该方法在 Android、iOS、Linux(X11/Wayland)、macOS、Web、Windows 上实现。该方法在其他平台上始终返回 72


Image screen_get_image(screen: int = -1) const 🔗

返回屏幕 screen 的截图。如果 screen 无效或 DisplayServer 无法捕捉到截图,则返回 null

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:该方法在 Linux(X11,但非 Wayland)、macOS、Windows 上实现。该方法在其他平台上始终返回 null

注意:在 macOS 上,该方法需要“屏幕录制”权限。如果未授予该权限,则该方法返回的截图中不包含其他应用程序的窗口以及与该应用程序无关的操作系统元素。


Image screen_get_image_rect(rect: Rect2i) const 🔗

返回由 rect 定义的屏幕区域的屏幕截图。如果 rect 超出屏幕边界或 DisplayServer 无法捕获屏幕截图,则返回 null

** 注意:**该方法在 macOS 和 Windows 上实现,在其他平台上始终返回 null

** 注意:**在 macOS 上,该方法需要“屏幕录制”权限。如果未授予权限,则该方法返回的屏幕截图中将不包含其他应用程序窗口以及与该应用程序无关的操作系统元素。


float screen_get_max_scale() const 🔗

返回所有屏幕的最大缩放系数。

注意:在 macOS 上,如果系统中至少有一个 hiDPI(Retina)屏幕,则返回值为 2.0,在所有其他情况下返回值为 1.0

注意:该方法仅在 macOS 上实现。


ScreenOrientation screen_get_orientation(screen: int = -1) const 🔗

返回屏幕 screen 的当前朝向。另见 screen_set_orientation()。如果 screen 无效则返回 SCREEN_LANDSCAPE

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:该方法在 Android 和 iOS 上实现。该方法在其他平台上始终返回 SCREEN_LANDSCAPE


Color screen_get_pixel(position: Vector2i) const 🔗

返回指定屏幕 position 位置像素的颜色。在多显示器配置下,屏幕位置相对于虚拟桌面区域。

注意:此方法在 Linux(X11,不包括 XWayland)、macOS 和 Windows 平台上实现。在其他平台上,此方法始终返回 Color(0, 0, 0, 1)

** 注意:**在 macOS 上,该方法需要“屏幕录制”权限。若未授予权限,则该方法返回的像素颜色将取自不包含其他应用程序窗口以及与该应用程序无关的操作系统元素的屏幕截图。


Vector2i screen_get_position(screen: int = -1) const 🔗

返回屏幕左上角的位置,单位为像素。如果 screen 无效则返回 Vector2i.ZERO。使用多个监视器时,屏幕位置是相对于虚拟桌面区域的位置。如果多监视器中使用了不同的屏幕分辨率或朝向,原点有可能位于所有显示器之外,类似于:

* (0, 0)        +-------+
                |       |
+-------------+ |       |
|             | |       |
|             | |       |
+-------------+ +-------+

另见screen_get_size()

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS


float screen_get_refresh_rate(screen: int = -1) const 🔗

Returns the current refresh rate of the specified screen. When V-Sync is enabled, this returns the maximum framerate the project can effectively reach. Returns -1.0 if screen is invalid or the DisplayServer fails to find the refresh rate for the specified screen.

To fallback to a default refresh rate if the method fails, try:

var refresh_rate = DisplayServer.screen_get_refresh_rate()
if refresh_rate < 0:
    refresh_rate = 60.0

Note: One of the following constants can be used as screen: SCREEN_OF_MAIN_WINDOW, SCREEN_PRIMARY, SCREEN_WITH_MOUSE_FOCUS, or SCREEN_WITH_KEYBOARD_FOCUS.

Note: This method is implemented on Android, iOS, macOS, Linux (X11 and Wayland), and Windows. On other platforms, this method always returns -1.0.


float screen_get_scale(screen: int = -1) const 🔗

返回屏幕的缩放系数,屏幕使用索引号指定。如果 screen 无效则返回 1.0

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:在 macOS 上,hiDPI(视网膜)屏幕返回 2.0,其它所有情况均返回 1.0

注意:在 Linux(Wayland)上,只有 screenSCREEN_OF_MAIN_WINDOW 时返回值才是精确的。由于 API 的限制,如果屏幕缩放存在小数点,传入直接的索引号返回的是向上取整后的结果(即 1.25 会向上取整成 2.0)。

注意:该方法在 Android、iOS、Web、macOS 和 Linux(Wayland)上实现。该方法在其他平台上始终返回 1.0


Vector2i screen_get_size(screen: int = -1) const 🔗

返回屏幕的大小,单位为像素。另见 screen_get_position()screen_get_usable_rect()。如果 screen 无效则返回 Vector2i.ZERO

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS


Rect2i screen_get_usable_rect(screen: int = -1) const 🔗

返回屏幕上未被状态栏遮挡部分。另见 screen_get_size()

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:该方法在 Linux/X11、macOS、Windows 上实现。该方法在其他平台上始终返回 Rect2i(screen_get_position(screen), screen_get_size(screen))


bool screen_is_kept_on() const 🔗

如果操作系统的节电措施永远不会关闭屏幕,则返回 true。另见 screen_set_keep_on()


void screen_set_keep_on(enable: bool) 🔗

设置屏幕是否总是不会被操作系统的节能措施关闭。另见 screen_is_kept_on()


void screen_set_orientation(orientation: ScreenOrientation, screen: int = -1) 🔗

设置 screenorientation。另见 screen_get_orientation()

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:该方法在 Android 和 iOS 上实现。

注意:在 iOS 上,如果 ProjectSettings.display/window/handheld/orientation 不为 SCREEN_SENSOR 则该方法无效。


void set_hardware_keyboard_connection_change_callback(callable: Callable) 🔗

设置当硬件键盘连接或断开时应调用的回调函数。callable 应接受单个 bool 参数,指示键盘已连接(true)或已断开(false)。

注意:该方法仅在 Android 上实现。


void set_icon(image: Image) 🔗

使用 Image 设置窗口图标(通常显示在左上角)。要使用操作系统的原生格式设置图标,请改用 set_native_icon()

注意:需要支持 FEATURE_ICON


void set_native_icon(filename: String) 🔗

使用操作系统的原生格式设置窗口图标(通常显示在左上角)。位于 filename 的文件在 Windows 上必须为 .ico 格式,在 macOS 上必须为 .icns 格式。使用特制的 .ico.icns 图标,就能够让 set_native_icon() 指定以不同尺寸显示图标时显示不同的图标。大小由操作系统和用户首选项决定(包括显示器缩放系数)。要使用其他格式的图标,请改用 set_icon()

注意:需要支持 FEATURE_NATIVE_ICON


void set_system_theme_change_callback(callable: Callable) 🔗

Sets the callback that should be called when the system's theme settings are changed. callable should accept zero arguments.

Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland).


void show_emoji_and_symbol_picker() const 🔗

打开系统 Emoji 和符号拾取器。

注意:该方法在 macOS 和 Windows 上实现。


Rect2 status_indicator_get_rect(id: int) const 🔗

返回给定状态指示器 id 的矩形,使用屏幕坐标系。如果状态指示器不可见,则返回空的 Rect2

注意:该方法在 macOS 和 Windows 上实现。


void status_indicator_set_callback(id: int, callback: Callable) 🔗

设置应用程序状态指示器激活回调。callback 应采用两个参数:int 鼠标按钮索引(MouseButton 值之一)和 Vector2i 屏幕坐标中的点击位置。

注意:该方法在 macOS 和 Windows 上实现。


void status_indicator_set_icon(id: int, icon: Texture2D) 🔗

设置应用程序状态指示器图标。

注意:该方法在 macOS 和 Windows 上实现。


void status_indicator_set_menu(id: int, menu_rid: RID) 🔗

设置应用程序状态指示器原生弹出菜单。

注意:在 macOS 上,该菜单可通过任何鼠标按键激活。其激活回调触发。

注意:在 Windows 上,该菜单可通过鼠标右键激活,选择状态图标并按下 Shift + F10 或应用程序键。菜单的其他鼠标按键的激活回调仍会触发。

注意:仅当 NativeMenu 支持 NativeMenu.FEATURE_POPUP_MENU 功能时,才支持原生弹出窗口。


void status_indicator_set_tooltip(id: int, tooltip: String) 🔗

设置应用程序状态指示器工具提示。

注意:该方法在 macOS 和 Windows 上实现。


String tablet_get_current_driver() const 🔗

返回当前活动的数位板驱动程序的名称。

注意:该方法仅在 Windows 上实现。


int tablet_get_driver_count() const 🔗

返回可用的数位板驱动程序的总数。

注意:该方法仅在 Windows 上实现。


String tablet_get_driver_name(idx: int) const 🔗

返回给定索引的数位板驱动程序名称。

注意:该方法仅在 Windows 上实现。


void tablet_set_current_driver(name: String) 🔗

设置活动平板驱动程序名称。

支持的驱动程序:

  • winink:Windows Ink API,默认。

  • wintab:Wacom Wintab API(需要兼容的设备驱动程序)。

  • dummy:虚设驱动程序,禁用平板输入。

注意:该方法仅在 Windows 上实现。


Array[Dictionary] tts_get_voices() const 🔗

返回语音信息字典的 Array

每个 Dictionary 包含两个 String 条目:

  • name 是语音名称。

  • id 是语音标识符。

  • language 是语言代码,格式为 lang_Variantlang 部分是小写的基于 ISO-639 标准的 2 或 3 字母代码。而 Variant 部分是一个依赖于引擎的字符串,描述国家、地区或/和方言。

请注意,Godot 依赖于系统库来实现文本到语音的功能。这些库在 Windows 和 MacOS 上是默认安装的,但并非安装在所有 Linux 发行版上。如果它们不存在,此方法将返回一个空列表。这适用于 Linux 上的 Godot 用户,以及在 Linux 上运行使用文本到语音的 Godot 游戏的最终用户。

注意:这个方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 和 Windows 上实现。


PackedStringArray tts_get_voices_for_language(language: String) const 🔗

返回 PackedStringArray,内容为 language 语言对应的语音标识符。

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 和 Windows 上实现。


bool tts_is_paused() const 🔗

如果合成器处于暂停状态,则返回 true

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 和 Windows 上实现。


bool tts_is_speaking() const 🔗

如果合成器正在生成语音,或者有发言正在队列中等待,则返回 true

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 和 Windows 上实现。


void tts_pause() 🔗

将合成器置为暂停状态。

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 和 Windows 上实现。


void tts_resume() 🔗

恢复暂停的合成器。

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 和 Windows 上实现。


void tts_set_utterance_callback(event: TTSUtteranceEvent, callable: Callable) 🔗

添加回调,会在发言开始、结束、取消、到达文本边界时调用。

注意:边界回调的颗粒度由引擎决定。

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 以及 Windows 上实现。


void tts_speak(text: String, voice: String, volume: int = 50, pitch: float = 1.0, rate: float = 1.0, utterance_id: int = 0, interrupt: bool = false) 🔗

向队列中添加发言。如果 interrupttrue,则会先清空队列。

  • voice 语音标识符是 tts_get_voices() 所返回的 "id" 值,也可以是 tts_get_voices_for_language() 返回的值。

  • volume 音量从 0(最低)到 100(最高)。

  • pitch 音高从 0.0(最低)到 2.0(最高), 1.0 为当前语音的默认音高。

  • rate 语速从 0.1(最低)到 10.0(最高), 1.0 为普通语速。其他值为相对百分比。

  • utterance_id 话语 ID 会作为参数传递给回调函数。

注意:在 Windows 和 Linux(X11/Wayland)上,发言的 text 可以使用 SSML 标记。对 SSML 支持取决于引擎和语音。如果引擎不支持 SSML,你应该在调用 tts_speak() 之前剥离所有 XML 标记。

注意:音高、语速、音量的颗粒度由引擎和语音决定。设置的值可能被截断。

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 以及 Windows 上实现。


void tts_stop() 🔗

停止执行中的合成器,移除队列中的所有发言。

注意:该方法在 Android、iOS、Web、Linux(X11/Wayland)、macOS 以及 Windows 上实现。


void unregister_additional_output(object: Object) 🔗

取消注册通过 register_additional_output() 注册的代表额外输出的 Object


int virtual_keyboard_get_height() const 🔗

返回屏幕键盘的高度(单位为像素)。如果没有键盘或键盘当前被隐藏,则返回 0

注意:在 Android 7 和 8 上,在非沉浸模式下首次打开键盘时,键盘高度可能会返回 0。该问题在沉浸模式下不会出现。


void virtual_keyboard_hide() 🔗

如果虚拟键盘为显示状态则隐藏虚拟键盘,否则不做任何操作。


void virtual_keyboard_show(existing_text: String, position: Rect2 = Rect2(0, 0, 0, 0), type: VirtualKeyboardType = 0, max_length: int = -1, cursor_start: int = -1, cursor_end: int = -1) 🔗

如果该平台有虚拟键盘,则显示虚拟键盘。

existing_text 参数对于实现你自己的 LineEditTextEdit 很有用,因为它告诉虚拟键盘已经输入了哪些文本(虚拟键盘使用它进行自动更正和预测)。

position 参数为编辑文本的屏幕空间 Rect2

type 参数允许配置要显示的虚拟键盘类型。

max_length 在当与 -1 不同时,限制可输入的字符数。

如果未设置 cursor_end,则可选参数 cursor_start 可以定义当前文本光标位置。

可选参数 cursor_startcursor_end,可以定义当前文本选区。

注意:该方法在 Android、iOS 和 Web 上实现。


void warp_mouse(position: Vector2i) 🔗

将鼠标光标位置设置为相对于当前聚焦的游戏窗口管理器窗口左上角的原点的给定 position

注意:warp_mouse() 仅在 Windows、macOS 和 Linux(X11/Wayland)上受支持。它在 Android、iOS 和 Web 上无效。


bool window_can_draw(window_id: int = 0) const 🔗

如果可以在 window_id 指定的窗口中绘制任何内容,则返回 true,否则返回 false。使用 --disable-render-loop 命令行参数或无头构建将返回 false


int window_get_active_popup() const 🔗

返回活动弹出窗口的 ID,如果没有则返回 INVALID_WINDOW_ID


int window_get_attached_instance_id(window_id: int = 0) const 🔗

返回 window_id 所附加的 WindowObject.get_instance_id()


int window_get_current_screen(window_id: int = 0) const 🔗

该函数返回窗口 window_id 所在的屏幕。如果屏幕跨越多个显示器,则返回窗口中心所在的屏幕。另见 window_set_current_screen() 。如果 window_id 无效则返回 INVALID_SCREEN

注意:该方法在 Linux/X11、macOS、Windows 上实现。在其他平台上始终返回 0


bool window_get_flag(flag: WindowFlags, window_id: int = 0) const 🔗

返回给定窗口当前的 flag 值。


Vector2i window_get_max_size(window_id: int = 0) const 🔗

返回该窗口的最大尺寸,单位为像素。另见 window_set_max_size()


Vector2i window_get_min_size(window_id: int = 0) const 🔗

返回该窗口的最小尺寸,单位为像素。另见 window_set_min_size()


WindowMode window_get_mode(window_id: int = 0) const 🔗

返回给定窗口的模式。


int window_get_native_handle(handle_type: HandleType, window_id: int = 0) const 🔗

该函数返回用于插件的内部结构指针。

注意:该方法在 Android、Linux(X11/Wayland)、macOS 和 Windows 上实现。


Rect2i window_get_popup_safe_rect(window: int) const 🔗

该函数返回控件或菜单项在屏幕坐标系统中的边界框,这个控件或菜单项被用来打开弹出窗口。


Vector2i window_get_position(window_id: int = 0) const 🔗

返回屏幕上给定窗口的客户端区域位置。


Vector2i window_get_position_with_decorations(window_id: int = 0) const 🔗

该函数返回给定窗口在屏幕上的位置,包括操作系统绘制的边框。另见 window_get_position()


Vector3i window_get_safe_title_margins(window_id: int = 0) const 🔗

当设置了 WINDOW_FLAG_EXTEND_TO_TITLE 标志时,该函数返回标题左边距 (x)、右边距 (y) 和高度 (z),这些边距可以安全地使用(不包含任何按钮或其他元素)。


Vector2i window_get_size(window_id: int = 0) const 🔗

返回窗口的大小(单位为像素),不包含操作系统绘制的边框,该窗口由 window_id 指定。这个区域也叫做“客户区域”。另见 window_get_size_with_decorations()window_set_size()window_get_position()


Vector2i window_get_size_with_decorations(window_id: int = 0) const 🔗

返回窗口的大小(单位为像素),包含操作系统绘制的边框,该窗口由 window_id 指定。另见 window_get_size()


Vector2i window_get_title_size(title: String, window_id: int = 0) const 🔗

返回由 window_id 指定的窗口的估计窗口标题栏大小(包括文本和窗口按钮)(单位:像素)。该方法不会更改窗口标题。

注意:该方法在 macOS 和 Windows 上实现。


VSyncMode window_get_vsync_mode(window_id: int = 0) const 🔗

返回给定窗口的垂直同步模式。


bool window_is_focused(window_id: int = 0) const 🔗

如果 window_id 指定的窗口已获得焦点,则返回 true


bool window_is_maximize_allowed(window_id: int = 0) const 🔗

如果给定的窗口能够最大化(最大化按钮已启用),则返回 true


bool window_maximize_on_title_dbl_click() const 🔗

Returns true if double-clicking on a window's title should maximize it.

Note: This method is implemented only on macOS.


bool window_minimize_on_title_dbl_click() const 🔗

Returns true if double-clicking on a window's title should minimize it.

Note: This method is implemented only on macOS.


void window_move_to_foreground(window_id: int = 0) 🔗

将由 window_id 指定的窗口移动至前台,使其位于其他窗口之上。


void window_request_attention(window_id: int = 0) 🔗

让由 window_id 指定的窗口请求注意,该窗口获得焦点之前会闪烁窗口标题和任务栏项目。如果该窗口目前持有焦点,则通常是没有可见效果的。实际的行为因操作系统而异。


void window_set_color(color: Color) 🔗

Sets the background color of the root window.

Note: This method is implemented only on Android.


void window_set_current_screen(screen: int, window_id: int = 0) 🔗

window_id 指定的窗口移动到 screen 屏幕。另见 window_get_current_screen()

注意:下列常量可以当作 screen 使用:SCREEN_OF_MAIN_WINDOWSCREEN_PRIMARYSCREEN_WITH_MOUSE_FOCUSSCREEN_WITH_KEYBOARD_FOCUS

注意:该方法在 Linux/X11、macOS 和 Windows 上实现。


void window_set_drop_files_callback(callback: Callable, window_id: int = 0) 🔗

设置当文件从操作系统的文件管理器拖放到 window_id 指定的窗口时应调用的 callbackcallback 应采用一个 PackedStringArray 参数,即拖放的文件列表。

警告:仅限高级用户!将这样的回调添加到 Window 节点将覆盖其默认实现,这可能会引入错误。

注意:这个方法在 Windows、macOS、Linux(X11/Wayland)、Web 上实现。


void window_set_exclusive(window_id: int, exclusive: bool) 🔗

如果设置为 true,该窗口将始终位于其父窗口之上,父窗口将在该窗口打开时忽略输入。

注意:在 macOS 上,独占窗口被限制在与父窗口相同的空间(虚拟桌面或屏幕)中。

注意:该方法在 macOS 和 Windows 上实现。


void window_set_flag(flag: WindowFlags, enabled: bool, window_id: int = 0) 🔗

禁用或启用给定窗口的 flag 标志。


void window_set_ime_active(active: bool, window_id: int = 0) 🔗

设置是否应该为窗口启用输入法编辑器,该窗口由 window_id 指定。另见 window_set_ime_position()


void window_set_ime_position(position: Vector2i, window_id: int = 0) 🔗

设置指定 window_id输入法编辑器弹出框的位置。仅在指定 window_idwindow_set_ime_active()true 时有效。


void window_set_input_event_callback(callback: Callable, window_id: int = 0) 🔗

设置回调 callback,向由 window_id 指定的窗口发送任何 InputEvent 时会进行回调。

警告:仅限高级用户!将这样的回调添加到 Window 节点将覆盖其默认实现,这可能会引入错误。


void window_set_input_text_callback(callback: Callable, window_id: int = 0) 🔗

设置回调 callback,使用虚拟键盘向由 window_id 指定的窗口输入文本时会进行回调。

警告:仅限高级用户!将这样的回调添加到 Window 节点将覆盖其默认实现,这可能会引入错误。


void window_set_max_size(max_size: Vector2i, window_id: int = 0) 🔗

设置由 window_id 指定的窗口的最大大小(单位为像素)。通常,用户将无法拖动窗口使其大于该指定大小。另见 window_get_max_size()

注意:建议改用 Window.max_size 更改此值。

注意:使用第三方工具,用户可以禁用窗口几何限制,从而绕过此限制。


void window_set_min_size(min_size: Vector2i, window_id: int = 0) 🔗

将给定窗口的最小大小设置为 min_size(单位为像素)。通常,用户将无法拖动窗口使其小于该指定大小。另见 window_get_min_size()

注意:建议改用 Window.min_size 来更改此值。

注意:默认情况下,主窗口的最小大小为 Vector2i(64, 64)。这可以防止将窗口调整为接近零的大小时可能出现的问题。

注意:使用第三方工具,用户可以禁用窗口几何限制,从而绕过此限制。


void window_set_mode(mode: WindowMode, window_id: int = 0) 🔗

将给定窗口的窗口模式设置为 mode

注意:在 Android 上,设为 WINDOW_MODE_FULLSCREENWINDOW_MODE_EXCLUSIVE_FULLSCREEN 会启用沉浸模式。

注意:将窗口设置为全屏会强制将无边框标志设为 true,所以不再需要时请务必将其设回 false


void window_set_mouse_passthrough(region: PackedVector2Array, window_id: int = 0) 🔗

设置一个接受鼠标事件的窗口的多边形区域。该区域外的鼠标事件将被传递出去。

传递一个空数组将禁用穿透支持(所有鼠标事件将被窗口拦截,这是默认行为)。

# 设置区域,使用 Path2D 节点。
DisplayServer.window_set_mouse_passthrough($Path2D.curve.get_baked_points())

# 设置区域,使用 Polygon2D 节点。
DisplayServer.window_set_mouse_passthrough($Polygon2D.polygon)

# 重置区域为默认值。
DisplayServer.window_set_mouse_passthrough([])

注意:在 Windows 上,不会绘制位于区域之外的窗口部分,而在 Linux(X11)和 macOS 上则会绘制。

注意:该方法在 Linux(X11)、macOS 和 Windows 上实现。


void window_set_popup_safe_rect(window: int, rect: Rect2i) 🔗

设置用于打开弹出窗口的控件或菜单项的范围框,使用屏幕坐标系。在该区域中点击不会自动关闭该弹出框。


void window_set_position(position: Vector2i, window_id: int = 0) 🔗

将给定窗口的位置设置为 position。使用多个监视器时,屏幕位置是相对于虚拟桌面区域的位置。如果多监视器中使用了不同的屏幕分辨率或朝向,原点有可能位于所有显示器之外,类似于:

* (0, 0)        +-------+
                |       |
+-------------+ |       |
|             | |       |
|             | |       |
+-------------+ +-------+

另见 window_get_position()window_set_size()

注意:建议改用 Window.position 更改此值。

注意:在 Linux(Wayland)上:该方法是没有操作。


void window_set_rect_changed_callback(callback: Callable, window_id: int = 0) 🔗

设置回调 callback,由 window_id 指定的窗口发生移动或调整大小时会进行回调。

警告:仅限高级用户!将这样的回调添加到 Window 节点将覆盖其默认实现,这可能会引入错误。


void window_set_size(size: Vector2i, window_id: int = 0) 🔗

将给定窗口的大小设置为 size(单位为像素)。另见 window_get_size()window_get_position()

注意:建议改用 Window.size 更改此值。


void window_set_title(title: String, window_id: int = 0) 🔗

将给定窗口的标题设置为 title

注意:建议改用 Window.title 更改此值。

注意:避免每一帧都更改窗口标题,因为这会导致某些窗口管理器出现性能问题。尝试每秒最多更改几次窗口标题。


void window_set_transient(window_id: int, parent_window_id: int) 🔗

设置窗口瞬态父级。瞬态窗口将与其瞬态父级一起销毁,并在关闭时将焦点返回到父级。瞬态窗口显示在非排他性全屏父窗口的顶部。瞬态窗口无法进入全屏模式。

注意:建议改用 Window.transient 更改此值。

注意:行为可能因平台而异。


void window_set_vsync_mode(vsync_mode: VSyncMode, window_id: int = 0) 🔗

设置给定窗口的垂直同步模式。另见 ProjectSettings.display/window/vsync/vsync_mode

根据平台和使用的渲染器,如果不支持所需的模式,引擎将回退到 VSYNC_ENABLED

注意:VSYNC_ENABLED 以外的垂直同步模式,仅支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。


void window_set_window_buttons_offset(offset: Vector2i, window_id: int = 0) 🔗

设置了 WINDOW_FLAG_EXTEND_TO_TITLE 标志时,会设置第一个标题栏按钮中心的偏移量。

注意:这个标志仅在 macOS 上实现。


void window_set_window_event_callback(callback: Callable, window_id: int = 0) 🔗

设置回调 callback,由 window_id 指定的窗口发生事件时会进行回调。

警告:仅限高级用户!将这样的回调添加到 Window 节点将覆盖其默认实现,这可能会引入错误。


void window_start_drag(window_id: int = 0) 🔗

在窗口编号为 window_id 的窗口上启动交互式拖动操作,使用当前鼠标位置。处理鼠标按钮按下事件时调用该方法可以模拟在窗口标题栏上按下的事件。使用该方法可以使窗口参与空间切换、平铺等系统功能。

注意:该方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。


void window_start_resize(edge: WindowResizeEdge, window_id: int = 0) 🔗

在窗口编号为 window_id 的窗口上启动交互式调整大小操作,使用当前鼠标位置。处理鼠标按钮按下事件时调用该方法可以模拟在窗口边缘上按下的事件。

注意:该方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。