class_filedialog.rst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/FileDialog.xml.
  6. .. _class_FileDialog:
  7. FileDialog
  8. ==========
  9. **Inherits:** :ref:`ConfirmationDialog<class_ConfirmationDialog>` **<** :ref:`AcceptDialog<class_AcceptDialog>` **<** :ref:`WindowDialog<class_WindowDialog>` **<** :ref:`Popup<class_Popup>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. Dialog for selecting files or directories in the filesystem.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. The FileDialog automatically sets its window title according to the :ref:`mode<class_FileDialog_property_mode>`. If you want to use a custom title, disable this by setting :ref:`mode_overrides_title<class_FileDialog_property_mode_overrides_title>` to ``false``.
  15. .. rst-class:: classref-reftable-group
  16. Properties
  17. ----------
  18. .. table::
  19. :widths: auto
  20. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  21. | :ref:`Access<enum_FileDialog_Access>` | :ref:`access<class_FileDialog_property_access>` | ``0`` |
  22. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  23. | :ref:`String<class_String>` | :ref:`current_dir<class_FileDialog_property_current_dir>` | |
  24. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  25. | :ref:`String<class_String>` | :ref:`current_file<class_FileDialog_property_current_file>` | |
  26. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  27. | :ref:`String<class_String>` | :ref:`current_path<class_FileDialog_property_current_path>` | |
  28. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  29. | :ref:`bool<class_bool>` | dialog_hide_on_ok | ``false`` (overrides :ref:`AcceptDialog<class_AcceptDialog_property_dialog_hide_on_ok>`) |
  30. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  31. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`filters<class_FileDialog_property_filters>` | ``PoolStringArray( )`` |
  32. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  33. | :ref:`Mode<enum_FileDialog_Mode>` | :ref:`mode<class_FileDialog_property_mode>` | ``4`` |
  34. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  35. | :ref:`bool<class_bool>` | :ref:`mode_overrides_title<class_FileDialog_property_mode_overrides_title>` | ``true`` |
  36. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  37. | :ref:`String<class_String>` | :ref:`root_subfolder<class_FileDialog_property_root_subfolder>` | ``""`` |
  38. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  39. | :ref:`bool<class_bool>` | :ref:`show_hidden_files<class_FileDialog_property_show_hidden_files>` | ``false`` |
  40. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  41. | :ref:`String<class_String>` | window_title | ``"Save a File"`` (overrides :ref:`WindowDialog<class_WindowDialog_property_window_title>`) |
  42. +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
  43. .. rst-class:: classref-reftable-group
  44. Methods
  45. -------
  46. .. table::
  47. :widths: auto
  48. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  49. | void | :ref:`add_filter<class_FileDialog_method_add_filter>` **(** :ref:`String<class_String>` filter **)** |
  50. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  51. | void | :ref:`clear_filters<class_FileDialog_method_clear_filters>` **(** **)** |
  52. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  53. | void | :ref:`deselect_items<class_FileDialog_method_deselect_items>` **(** **)** |
  54. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  55. | :ref:`LineEdit<class_LineEdit>` | :ref:`get_line_edit<class_FileDialog_method_get_line_edit>` **(** **)** |
  56. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  57. | :ref:`VBoxContainer<class_VBoxContainer>` | :ref:`get_vbox<class_FileDialog_method_get_vbox>` **(** **)** |
  58. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  59. | void | :ref:`invalidate<class_FileDialog_method_invalidate>` **(** **)** |
  60. +-------------------------------------------+------------------------------------------------------------------------------------------------------+
  61. .. rst-class:: classref-reftable-group
  62. Theme Properties
  63. ----------------
  64. .. table::
  65. :widths: auto
  66. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  67. | :ref:`Color<class_Color>` | :ref:`file_icon_modulate<class_FileDialog_theme_color_file_icon_modulate>` | ``Color( 1, 1, 1, 1 )`` |
  68. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  69. | :ref:`Color<class_Color>` | :ref:`files_disabled<class_FileDialog_theme_color_files_disabled>` | ``Color( 1, 1, 1, 0.25 )`` |
  70. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  71. | :ref:`Color<class_Color>` | :ref:`folder_icon_modulate<class_FileDialog_theme_color_folder_icon_modulate>` | ``Color( 1, 1, 1, 1 )`` |
  72. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  73. | :ref:`Texture<class_Texture>` | :ref:`file<class_FileDialog_theme_icon_file>` | |
  74. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  75. | :ref:`Texture<class_Texture>` | :ref:`folder<class_FileDialog_theme_icon_folder>` | |
  76. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  77. | :ref:`Texture<class_Texture>` | :ref:`parent_folder<class_FileDialog_theme_icon_parent_folder>` | |
  78. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  79. | :ref:`Texture<class_Texture>` | :ref:`reload<class_FileDialog_theme_icon_reload>` | |
  80. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  81. | :ref:`Texture<class_Texture>` | :ref:`toggle_hidden<class_FileDialog_theme_icon_toggle_hidden>` | |
  82. +-------------------------------+--------------------------------------------------------------------------------+----------------------------+
  83. .. rst-class:: classref-section-separator
  84. ----
  85. .. rst-class:: classref-descriptions-group
  86. Signals
  87. -------
  88. .. _class_FileDialog_signal_dir_selected:
  89. .. rst-class:: classref-signal
  90. **dir_selected** **(** :ref:`String<class_String>` dir **)**
  91. Emitted when the user selects a directory.
  92. .. rst-class:: classref-item-separator
  93. ----
  94. .. _class_FileDialog_signal_file_selected:
  95. .. rst-class:: classref-signal
  96. **file_selected** **(** :ref:`String<class_String>` path **)**
  97. Emitted when the user selects a file by double-clicking it or pressing the **OK** button.
  98. .. rst-class:: classref-item-separator
  99. ----
  100. .. _class_FileDialog_signal_files_selected:
  101. .. rst-class:: classref-signal
  102. **files_selected** **(** :ref:`PoolStringArray<class_PoolStringArray>` paths **)**
  103. Emitted when the user selects multiple files.
  104. .. rst-class:: classref-section-separator
  105. ----
  106. .. rst-class:: classref-descriptions-group
  107. Enumerations
  108. ------------
  109. .. _enum_FileDialog_Mode:
  110. .. rst-class:: classref-enumeration
  111. enum **Mode**:
  112. .. _class_FileDialog_constant_MODE_OPEN_FILE:
  113. .. rst-class:: classref-enumeration-constant
  114. :ref:`Mode<enum_FileDialog_Mode>` **MODE_OPEN_FILE** = ``0``
  115. The dialog allows selecting one, and only one file.
  116. .. _class_FileDialog_constant_MODE_OPEN_FILES:
  117. .. rst-class:: classref-enumeration-constant
  118. :ref:`Mode<enum_FileDialog_Mode>` **MODE_OPEN_FILES** = ``1``
  119. The dialog allows selecting multiple files.
  120. .. _class_FileDialog_constant_MODE_OPEN_DIR:
  121. .. rst-class:: classref-enumeration-constant
  122. :ref:`Mode<enum_FileDialog_Mode>` **MODE_OPEN_DIR** = ``2``
  123. The dialog only allows selecting a directory, disallowing the selection of any file.
  124. .. _class_FileDialog_constant_MODE_OPEN_ANY:
  125. .. rst-class:: classref-enumeration-constant
  126. :ref:`Mode<enum_FileDialog_Mode>` **MODE_OPEN_ANY** = ``3``
  127. The dialog allows selecting one file or directory.
  128. .. _class_FileDialog_constant_MODE_SAVE_FILE:
  129. .. rst-class:: classref-enumeration-constant
  130. :ref:`Mode<enum_FileDialog_Mode>` **MODE_SAVE_FILE** = ``4``
  131. The dialog will warn when a file exists.
  132. .. rst-class:: classref-item-separator
  133. ----
  134. .. _enum_FileDialog_Access:
  135. .. rst-class:: classref-enumeration
  136. enum **Access**:
  137. .. _class_FileDialog_constant_ACCESS_RESOURCES:
  138. .. rst-class:: classref-enumeration-constant
  139. :ref:`Access<enum_FileDialog_Access>` **ACCESS_RESOURCES** = ``0``
  140. The dialog only allows accessing files under the :ref:`Resource<class_Resource>` path (``res://``).
  141. .. _class_FileDialog_constant_ACCESS_USERDATA:
  142. .. rst-class:: classref-enumeration-constant
  143. :ref:`Access<enum_FileDialog_Access>` **ACCESS_USERDATA** = ``1``
  144. The dialog only allows accessing files under user data path (``user://``).
  145. .. _class_FileDialog_constant_ACCESS_FILESYSTEM:
  146. .. rst-class:: classref-enumeration-constant
  147. :ref:`Access<enum_FileDialog_Access>` **ACCESS_FILESYSTEM** = ``2``
  148. The dialog allows accessing files on the whole file system.
  149. .. rst-class:: classref-section-separator
  150. ----
  151. .. rst-class:: classref-descriptions-group
  152. Property Descriptions
  153. ---------------------
  154. .. _class_FileDialog_property_access:
  155. .. rst-class:: classref-property
  156. :ref:`Access<enum_FileDialog_Access>` **access** = ``0``
  157. .. rst-class:: classref-property-setget
  158. - void **set_access** **(** :ref:`Access<enum_FileDialog_Access>` value **)**
  159. - :ref:`Access<enum_FileDialog_Access>` **get_access** **(** **)**
  160. The file system access scope. See enum ``Access`` constants.
  161. \ **Warning:** Currently, in sandboxed environments such as HTML5 builds or sandboxed macOS apps, FileDialog cannot access the host file system. See `godot-proposals#1123 <https://github.com/godotengine/godot-proposals/issues/1123>`__.
  162. .. rst-class:: classref-item-separator
  163. ----
  164. .. _class_FileDialog_property_current_dir:
  165. .. rst-class:: classref-property
  166. :ref:`String<class_String>` **current_dir**
  167. .. rst-class:: classref-property-setget
  168. - void **set_current_dir** **(** :ref:`String<class_String>` value **)**
  169. - :ref:`String<class_String>` **get_current_dir** **(** **)**
  170. The current working directory of the file dialog.
  171. .. rst-class:: classref-item-separator
  172. ----
  173. .. _class_FileDialog_property_current_file:
  174. .. rst-class:: classref-property
  175. :ref:`String<class_String>` **current_file**
  176. .. rst-class:: classref-property-setget
  177. - void **set_current_file** **(** :ref:`String<class_String>` value **)**
  178. - :ref:`String<class_String>` **get_current_file** **(** **)**
  179. The currently selected file of the file dialog.
  180. .. rst-class:: classref-item-separator
  181. ----
  182. .. _class_FileDialog_property_current_path:
  183. .. rst-class:: classref-property
  184. :ref:`String<class_String>` **current_path**
  185. .. rst-class:: classref-property-setget
  186. - void **set_current_path** **(** :ref:`String<class_String>` value **)**
  187. - :ref:`String<class_String>` **get_current_path** **(** **)**
  188. The currently selected file path of the file dialog.
  189. .. rst-class:: classref-item-separator
  190. ----
  191. .. _class_FileDialog_property_filters:
  192. .. rst-class:: classref-property
  193. :ref:`PoolStringArray<class_PoolStringArray>` **filters** = ``PoolStringArray( )``
  194. .. rst-class:: classref-property-setget
  195. - void **set_filters** **(** :ref:`PoolStringArray<class_PoolStringArray>` value **)**
  196. - :ref:`PoolStringArray<class_PoolStringArray>` **get_filters** **(** **)**
  197. The available file type filters. For example, this shows only ``.png`` and ``.gd`` files: ``set_filters(PoolStringArray(["*.png ; PNG Images","*.gd ; GDScript Files"]))``. Multiple file types can also be specified in a single filter. ``"*.png, *.jpg, *.jpeg ; Supported Images"`` will show both PNG and JPEG files when selected.
  198. .. rst-class:: classref-item-separator
  199. ----
  200. .. _class_FileDialog_property_mode:
  201. .. rst-class:: classref-property
  202. :ref:`Mode<enum_FileDialog_Mode>` **mode** = ``4``
  203. .. rst-class:: classref-property-setget
  204. - void **set_mode** **(** :ref:`Mode<enum_FileDialog_Mode>` value **)**
  205. - :ref:`Mode<enum_FileDialog_Mode>` **get_mode** **(** **)**
  206. The dialog's open or save mode, which affects the selection behavior. See enum ``Mode`` constants.
  207. .. rst-class:: classref-item-separator
  208. ----
  209. .. _class_FileDialog_property_mode_overrides_title:
  210. .. rst-class:: classref-property
  211. :ref:`bool<class_bool>` **mode_overrides_title** = ``true``
  212. .. rst-class:: classref-property-setget
  213. - void **set_mode_overrides_title** **(** :ref:`bool<class_bool>` value **)**
  214. - :ref:`bool<class_bool>` **is_mode_overriding_title** **(** **)**
  215. If ``true``, changing the ``Mode`` property will set the window title accordingly (e.g. setting mode to :ref:`MODE_OPEN_FILE<class_FileDialog_constant_MODE_OPEN_FILE>` will change the window title to "Open a File").
  216. .. rst-class:: classref-item-separator
  217. ----
  218. .. _class_FileDialog_property_root_subfolder:
  219. .. rst-class:: classref-property
  220. :ref:`String<class_String>` **root_subfolder** = ``""``
  221. .. rst-class:: classref-property-setget
  222. - void **set_root_subfolder** **(** :ref:`String<class_String>` value **)**
  223. - :ref:`String<class_String>` **get_root_subfolder** **(** **)**
  224. If non-empty, the given sub-folder will be "root" of this **FileDialog**, i.e. user won't be able to go to its parent directory.
  225. .. rst-class:: classref-item-separator
  226. ----
  227. .. _class_FileDialog_property_show_hidden_files:
  228. .. rst-class:: classref-property
  229. :ref:`bool<class_bool>` **show_hidden_files** = ``false``
  230. .. rst-class:: classref-property-setget
  231. - void **set_show_hidden_files** **(** :ref:`bool<class_bool>` value **)**
  232. - :ref:`bool<class_bool>` **is_showing_hidden_files** **(** **)**
  233. If ``true``, the dialog will show hidden files.
  234. .. rst-class:: classref-section-separator
  235. ----
  236. .. rst-class:: classref-descriptions-group
  237. Method Descriptions
  238. -------------------
  239. .. _class_FileDialog_method_add_filter:
  240. .. rst-class:: classref-method
  241. void **add_filter** **(** :ref:`String<class_String>` filter **)**
  242. Adds ``filter`` to the list of filters, which restricts what files can be picked.
  243. A ``filter`` should be of the form ``"filename.extension ; Description"``, where filename and extension can be ``*`` to match any string. Filters starting with ``.`` (i.e. empty filenames) are not allowed.
  244. Example filters: ``"*.png ; PNG Images"``, ``"project.godot ; Godot Project"``.
  245. .. rst-class:: classref-item-separator
  246. ----
  247. .. _class_FileDialog_method_clear_filters:
  248. .. rst-class:: classref-method
  249. void **clear_filters** **(** **)**
  250. Clear all the added filters in the dialog.
  251. .. rst-class:: classref-item-separator
  252. ----
  253. .. _class_FileDialog_method_deselect_items:
  254. .. rst-class:: classref-method
  255. void **deselect_items** **(** **)**
  256. Clear currently selected items in the dialog.
  257. .. rst-class:: classref-item-separator
  258. ----
  259. .. _class_FileDialog_method_get_line_edit:
  260. .. rst-class:: classref-method
  261. :ref:`LineEdit<class_LineEdit>` **get_line_edit** **(** **)**
  262. Returns the LineEdit for the selected file.
  263. \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
  264. .. rst-class:: classref-item-separator
  265. ----
  266. .. _class_FileDialog_method_get_vbox:
  267. .. rst-class:: classref-method
  268. :ref:`VBoxContainer<class_VBoxContainer>` **get_vbox** **(** **)**
  269. Returns the vertical box container of the dialog, custom controls can be added to it.
  270. \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
  271. .. rst-class:: classref-item-separator
  272. ----
  273. .. _class_FileDialog_method_invalidate:
  274. .. rst-class:: classref-method
  275. void **invalidate** **(** **)**
  276. Invalidate and update the current dialog content list.
  277. .. rst-class:: classref-section-separator
  278. ----
  279. .. rst-class:: classref-descriptions-group
  280. Theme Property Descriptions
  281. ---------------------------
  282. .. _class_FileDialog_theme_color_file_icon_modulate:
  283. .. rst-class:: classref-themeproperty
  284. :ref:`Color<class_Color>` **file_icon_modulate** = ``Color( 1, 1, 1, 1 )``
  285. The color modulation applied to the file icon.
  286. .. rst-class:: classref-item-separator
  287. ----
  288. .. _class_FileDialog_theme_color_files_disabled:
  289. .. rst-class:: classref-themeproperty
  290. :ref:`Color<class_Color>` **files_disabled** = ``Color( 1, 1, 1, 0.25 )``
  291. The color tint for disabled files (when the **FileDialog** is used in open folder mode).
  292. .. rst-class:: classref-item-separator
  293. ----
  294. .. _class_FileDialog_theme_color_folder_icon_modulate:
  295. .. rst-class:: classref-themeproperty
  296. :ref:`Color<class_Color>` **folder_icon_modulate** = ``Color( 1, 1, 1, 1 )``
  297. The color modulation applied to the folder icon.
  298. .. rst-class:: classref-item-separator
  299. ----
  300. .. _class_FileDialog_theme_icon_file:
  301. .. rst-class:: classref-themeproperty
  302. :ref:`Texture<class_Texture>` **file**
  303. Custom icon for files.
  304. .. rst-class:: classref-item-separator
  305. ----
  306. .. _class_FileDialog_theme_icon_folder:
  307. .. rst-class:: classref-themeproperty
  308. :ref:`Texture<class_Texture>` **folder**
  309. Custom icon for folders.
  310. .. rst-class:: classref-item-separator
  311. ----
  312. .. _class_FileDialog_theme_icon_parent_folder:
  313. .. rst-class:: classref-themeproperty
  314. :ref:`Texture<class_Texture>` **parent_folder**
  315. Custom icon for the parent folder arrow.
  316. .. rst-class:: classref-item-separator
  317. ----
  318. .. _class_FileDialog_theme_icon_reload:
  319. .. rst-class:: classref-themeproperty
  320. :ref:`Texture<class_Texture>` **reload**
  321. Custom icon for the reload button.
  322. .. rst-class:: classref-item-separator
  323. ----
  324. .. _class_FileDialog_theme_icon_toggle_hidden:
  325. .. rst-class:: classref-themeproperty
  326. :ref:`Texture<class_Texture>` **toggle_hidden**
  327. Custom icon for the toggle hidden button.
  328. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  329. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  330. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  331. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`