FileDialog¶
继承: ConfirmationDialog < AcceptDialog < Window < Viewport < Item < Object
用于选择文件系统中的文件或目录的对话框。
描述¶
FileDialog是一个预设对话框,用于选择文件系统中的文件和目录。它支持过滤掩码。FileDialog根据file_mode自动设置其窗口标题。如果要使用自定义标题,请通过将mode_overrides_title设置为false来禁用它。
属性¶
|
||
dialog_hide_on_ok |
|
|
|
||
|
||
|
||
|
||
ok_button_text |
|
|
|
||
|
||
|
||
size |
|
|
title |
|
|
|
方法¶
void |
add_filter(filter: String, description: String = "") |
void |
add_option(name: String, values: PackedStringArray, default_value_index: int) |
void |
|
void |
|
void |
|
get_option_default(option: int) const |
|
get_option_name(option: int) const |
|
get_option_values(option: int) const |
|
get_selected_options() const |
|
get_vbox() |
|
void |
|
void |
set_option_default(option: int, default_value_index: int) |
void |
set_option_name(option: int, name: String) |
void |
set_option_values(option: int, values: PackedStringArray) |
主题属性¶
|
||
|
||
|
||
信号¶
当用户选择目录时发出。
当用户通过双击或按OK按钮选择文件时发出。
filename_filter_changed(filter: String) 🔗
当文件名过滤器更改时发出。
files_selected(paths: PackedStringArray) 🔗
当用户选择多个文件时发出。
枚举¶
enum FileMode: 🔗
FileMode FILE_MODE_OPEN_FILE = 0
该对话框允许选择一个且仅选择一个文件。
FileMode FILE_MODE_OPEN_FILES = 1
该对话框允许选择多个文件。
FileMode FILE_MODE_OPEN_DIR = 2
该对话框只允许选择一个目录,不允许选择任何文件。
FileMode FILE_MODE_OPEN_ANY = 3
该对话框允许选择一个文件或目录。
FileMode FILE_MODE_SAVE_FILE = 4
该对话框将在文件存在时发出警告。
enum Access: 🔗
Access ACCESS_RESOURCES = 0
该对话框仅允许访问Resource路径下的文件(res://)。
Access ACCESS_USERDATA = 1
对话框只允许访问用户数据通路下的文件(user://)。
Access ACCESS_FILESYSTEM = 2
该对话框允许访问整个文件系统上的文件。
属性说明¶
文件系统访问范围。请参阅Access常量。
警告:在Web构建中,FileDialog无法访问主机文件系统。在沙盒Linux和macOS环境中,use_native_dialog自动用于允许对主机文件系统的有限访问。
文件对话框的当前工作目录。
注意:对于本机文件对话框,此属性仅被视为提示,可能不受特定操作系统实现的尊重。
文件对话框的当前选定文件。
文件对话框当前选定的文件路径。
对话框的打开或保存模式,这会影响选择行为。请参阅FileMode。
文件名过滤器(不区分大小写)。当设置为非空字符串时,将仅显示包含子字符串的文件。用户可以使用文件对话框顶部的过滤器按钮编辑filename_filter。
另请参阅filters,它应该用于限制可以选择的文件类型,而不是由用户设置的filename_filter。
PackedStringArray filters = PackedStringArray() 🔗
void set_filters(value: PackedStringArray)
PackedStringArray get_filters()
可用的文件类型过滤器。数组中的每个过滤器字符串的格式应如下:*. png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg。过滤器的描述文本是可选的,可以省略。应始终设置文件扩展名和MIME类型。
注意:嵌入式文件对话框和Windows文件对话框仅支持文件扩展名,而Android、Linux和macOS文件对话框也支持MIME类型。
注意:返回的数组被 复制 ,对它的任何更改都不会更新原始属性值。有关详细信息,请参见 PackedStringArray 。
bool mode_overrides_title = true 🔗
如果true,更改file_mode属性将相应地设置窗口标题(例如,将file_mode设置为FILE_MODE_OPEN_FILE将窗口标题更改为“打开文件”)。
对话框中附加的OptionButton和CheckBox的数量。
如果非空,则给定的子文件夹将是此FileDialog的“root”,即用户将无法访问其父目录。
注意:本机文件对话框会忽略此属性。
如果true,对话框将显示隐藏文件。
注意:Android和Linux上的本机文件对话框会忽略此属性。
bool use_native_dialog = false 🔗
如果true,并且当前DisplayServer支持,则将使用OS本机对话框而不是自定义对话框。
注意:在Android上,仅在使用ACCESS_FILESYSTEM时才支持,对于访问模式ACCESS_RESOURCES和ACCESS_USERDATA,系统会回退到自定义FileDialog。
注意:在Linux和macOS上,沙盒应用程序总是使用本机对话框来访问主机文件系统。
注意:在macOS上,沙盒应用程序将保存安全范围的书签,以保留对多个会话中打开的文件夹的访问权限。使用OS.get_granted_permissions()获取已保存书签的列表。
注意:本机对话框与基本进程隔离,显示对话框后无法修改文件对话框属性。
方法说明¶
void add_filter(filter: String, description: String = "") 🔗
将逗号分隔的文件名filter选项添加到FileDialog,并带有可选的description,该选项限制可以选择的文件。
filter的形式应该是"filename.extension",其中文件名和扩展名可以是*以匹配任何字符串。不允许以.开头的过滤器(即空文件名)。
例如,"*. png,*.jpg"的filter和"Images"的description会产生过滤文本"Images(*.png,*.jpg)"。
void add_option(name: String, values: PackedStringArray, default_value_index: int) 🔗
在文件对话框中添加一个附加的OptionButton。如果values为空,则添加一个CheckBox。
default_value_index应该是values中值的索引。如果values为空,则应该是1(选中)或0(未选中)。
void clear_filename_filter() 🔗
清除文件名过滤器。
void clear_filters() 🔗
清除对话框中添加的所有过滤器。
void deselect_all() 🔗
清除对话框中所有当前选定的项目。
返回所选文件的LineEdit。
警告:这是一个必需的内部节点,删除和释放它可能会导致崩溃。
int get_option_default(option: int) const 🔗
返回带有indexoption的OptionButton或CheckBox的默认值索引。
String get_option_name(option: int) const 🔗
返回带有索引option的OptionButton或CheckBox的名称。
PackedStringArray get_option_values(option: int) const 🔗
返回带有indexoption的OptionButton值数组。
Dictionary get_selected_options() const 🔗
返回一个Dictionary,其中包含附加OptionButtons和/或CheckBoxes的选定值。Dictionary键是名称,值是选定的值索引。
VBoxContainer get_vbox() 🔗
返回对话框的垂直框容器,可以添加自定义控件。
警告:这是一个必需的内部节点,删除和释放它可能会导致崩溃。
注意:本机文件对话框会忽略对该节点的更改,请使用add_option()将自定义元素添加到对话框中。
void invalidate() 🔗
使当前对话框内容列表无效并更新。
注意:此方法对本机文件对话框不做任何事情。
void set_option_default(option: int, default_value_index: int) 🔗
使用indexoption设置OptionButton或CheckBox的默认值索引。
void set_option_name(option: int, name: String) 🔗
使用索引option设置OptionButton或CheckBox的名称。
void set_option_values(option: int, values: PackedStringArray) 🔗
使用indexoption设置OptionButton的选项值。
主题属性说明¶
Color file_disabled_color = Color(1, 1, 1, 0.25) 🔗
禁用文件的颜色(当FileDialog在打开文件夹模式下使用时)。
Color file_icon_color = Color(1, 1, 1, 1) 🔗
应用于文件图标的颜色调制。
Color folder_icon_color = Color(1, 1, 1, 1) 🔗
应用于文件夹图标的颜色调制。
返回箭头的自定义图标。
创建文件夹按钮的自定义图标。
文件的自定义图标。
文件夹的自定义图标。
向前箭头的自定义图标。
父文件夹箭头的自定义图标。
重新加载按钮的自定义图标。
Texture2D toggle_filename_filter 🔗
文件名过滤器切换按钮的自定义图标。
切换隐藏按钮的自定义图标。