檢視原始碼 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 中實作(其中會防止解析別名)。在 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 對話框在萬用字元方面有一些限制;請參閱上面的「注意」一節。