查看源代码 wxFileDialog (wx v2.4.3)
此类表示文件选择对话框。
路径和文件名是完整文件路径名的不同元素。如果路径是 ?wxEmptyString,将使用当前目录。如果文件名是 ?wxEmptyString,则不会提供默认文件名。通配符决定了文件选择器中显示的文件,而文件扩展名则为所需的文件名提供类型扩展名。
打开文件对话框的典型用法是
保存文件对话框的典型用法则稍微简单一些
备注:wxFileDialog
的所有实现都提供通配符过滤器。在文件名文本项中键入包含通配符(*,?)的文件名,然后单击“确定”,将仅显示与该模式匹配的文件。通配符可以是多种文件类型的规范,并为每种类型提供描述,例如:必须注意的是,原生 Motif 文件对话框中的通配符支持非常有限:仅支持一种文件类型,并且在没有描述性文本的情况下显示;“BMP 文件 (*.bmp)|*.bmp”显示为“*.bmp”,而“BMP 文件 (*.bmp)|*.bmp|GIF 文件 (*.gif)|*.gif”和“图像文件|*.bmp;*.gif”都是错误的。在 Mac macOS 的打开文件对话框中,默认情况下不显示过滤器选择框。相反,所有给定的通配符都同时应用:因此,在上面的示例中,将显示所有 bmp、gif 和 png 文件。要强制显示过滤器选择,请在调用文件打开对话框之前设置相应的 wxSystemOptions
:但与 Windows 和 Unix 不同,在 Windows 和 Unix 中,文件类型选择仅过滤选定的文件,而在 Mac macOS 上,即使在这种情况下,对话框也会显示所有与所有文件类型匹配的文件。不符合当前选定文件类型的文件将被灰显且不可选择。
样式
此类支持以下样式
wxFD_DEFAULT_STYLE:等效于
wxFD_OPEN
。wxFD_OPEN:这是一个打开对话框;通常这意味着对话框的默认按钮的标签是“打开”。不能与
wxFD_SAVE
组合使用。wxFD_SAVE:这是一个保存对话框;通常这意味着对话框的默认按钮的标签是“保存”。不能与
wxFD_OPEN
组合使用。wxFD_OVERWRITE_PROMPT:仅用于保存对话框:如果文件将被覆盖,则会提示确认。
wxFD_NO_FOLLOW:指示对话框返回所选快捷方式文件的路径和文件名,而不是默认的目标。目前,此标志仅在 wxMSW 和 wxOSX 中实现(在 wxOSX 中,它阻止别名被解析)。在 Unix 下,即使没有此标志,也会始终返回未被解除引用的链接路径,因此在那里使用它没有任何作用。此标志是在 wxWidgets 3.1.0 中添加的。
wxFD_FILE_MUST_EXIST:仅用于打开对话框:用户只能选择实际存在的文件。请注意,在 macOS 下,具有
wxFD_OPEN
样式的对话框始终表现得好像指定了此样式一样,因为不可能从标准 macOS 文件对话框中选择不存在的文件。wxFD_MULTIPLE:仅用于打开对话框:允许选择多个文件。
wxFD_CHANGE_DIR:将当前工作目录(当对话框关闭时)更改为用户选择的文件所在的目录。
wxFD_PREVIEW:显示所选文件的预览(目前仅 wxGTK 支持)。
wxFD_SHOW_HIDDEN:显示隐藏文件。此标志是在 wxWidgets 3.1.3 中添加的。
参见
?wxFileSelector()
此类派生自以下类,并且可以使用来自这些类的函数
wxWidgets 文档: wxFileDialog
摘要
函数
销毁对象
返回默认目录。
返回默认文件名。
使用所选文件的名称填充数组 filenames
。
返回在通配符参数中可选提供的过滤器列表的索引。
返回将在对话框上显示的消息。
返回所选文件的完整路径(目录和文件名)。
使用所选文件的完整路径填充数组 paths
。
返回文件对话框通配符。
构造函数。
设置默认目录。
设置默认文件名。
设置默认过滤器索引,从零开始。
设置将在对话框上显示的消息。
设置路径(当对话框关闭时将返回的组合目录和文件名)。
设置通配符,其中可以包含多种文件类型,例如:“BMP 文件 (*.bmp)|*.bmp|GIF 文件 (*.gif)|*.gif”。
类型
-type wxFileDialog() :: wx:wx_object().
函数
-spec destroy(This :: wxFileDialog()) -> ok.
销毁对象
-spec getDirectory(This) -> unicode:charlist() when This :: wxFileDialog().
返回默认目录。
-spec getFilename(This) -> unicode:charlist() when This :: wxFileDialog().
返回默认文件名。
注意:此函数不能用于具有 wxFD_MULTIPLE
样式的对话框,请改用 getFilenames/1
。
-spec getFilenames(This) -> [unicode:charlist()] when This :: wxFileDialog().
使用所选文件的名称填充数组 filenames
。
此函数应仅用于具有 wxFD_MULTIPLE
样式的对话框,对于其他对话框,请使用 getFilename/1
。
请注意,在 Windows 下,如果用户选择快捷方式,则文件名包含路径,因为应用程序无法通过将包含快捷方式的目录附加到文件名来确定每个引用文件的完整路径。
-spec getFilterIndex(This) -> integer() when This :: wxFileDialog().
返回在通配符参数中可选提供的过滤器列表的索引。
在显示对话框之前,这是首次显示对话框时将使用的索引。
在显示对话框之后,这是用户选择的索引。
-spec getMessage(This) -> unicode:charlist() when This :: wxFileDialog().
返回将在对话框上显示的消息。
-spec getPath(This) -> unicode:charlist() when This :: wxFileDialog().
返回所选文件的完整路径(目录和文件名)。
注意:此函数不能用于具有 wxFD_MULTIPLE
样式的对话框,请改用 getPaths/1
。
-spec getPaths(This) -> [unicode:charlist()] when This :: wxFileDialog().
使用所选文件的完整路径填充数组 paths
。
此函数应仅用于具有 wxFD_MULTIPLE
样式的对话框,对于其他对话框,请使用 getPath/1
。
-spec getWildcard(This) -> unicode:charlist() when This :: wxFileDialog().
返回文件对话框通配符。
-spec new(Parent) -> wxFileDialog() when Parent :: wxWindow:wxWindow().
等效于 new(Parent, [])
。
-spec new(Parent, [Option]) -> wxFileDialog() when Parent :: wxWindow:wxWindow(), Option :: {message, unicode:chardata()} | {defaultDir, unicode:chardata()} | {defaultFile, unicode:chardata()} | {wildCard, unicode:chardata()} | {style, integer()} | {pos, {X :: integer(), Y :: integer()}} | {sz, {W :: integer(), H :: integer()}}.
构造函数。
使用 wxDialog:showModal/1
显示对话框。
-spec setDirectory(This, Directory) -> ok when This :: wxFileDialog(), Directory :: unicode:chardata().
设置默认目录。
-spec setFilename(This, Setfilename) -> ok when This :: wxFileDialog(), Setfilename :: unicode:chardata().
设置默认文件名。
在 wxGTK 中,除非先前设置了默认目录,否则这几乎没有效果。
-spec setFilterIndex(This, FilterIndex) -> ok when This :: wxFileDialog(), FilterIndex :: integer().
设置默认过滤器索引,从零开始。
-spec setMessage(This, Message) -> ok when This :: wxFileDialog(), Message :: unicode:chardata().
设置将在对话框上显示的消息。
-spec setPath(This, Path) -> ok when This :: wxFileDialog(), Path :: unicode:chardata().
设置路径(当对话框关闭时将返回的组合目录和文件名)。
-spec setWildcard(This, WildCard) -> ok when This :: wxFileDialog(), WildCard :: unicode:chardata().
设置通配符,其中可以包含多种文件类型,例如:“BMP 文件 (*.bmp)|*.bmp|GIF 文件 (*.gif)|*.gif”。
请注意,原生 Motif 对话框在通配符方面有一些限制;请参阅上面的“备注”部分。