<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 8.2 文件和目錄對話框 如果想讓用戶選擇文件和目錄,你可以使用下面這兩種對話框:wxFileDialog和wxDirDialog. wxFileDialog wxFileDialog用來讓用戶選擇一個或多個文件.它還有一個專門用來打開文件或者保存文件的變體. 下圖演示了windows平臺上文件對話框的樣子: ![](img/mht8C73%281%29.tmp) GTK+ 版本: ![](img/mht8C85%281%29.tmp) GTK+ 2.4以上版本: ![](img/mht8C88%281%29.tmp) Mac Os X版本: ![](img/mht8C9B%281%29.tmp) 創建一個文件對話框需要傳遞的參數包括一個父窗口,一個顯示在對話框標題欄的消息文本,默認的目錄,默認文件名,通配符,對話框類型和顯示位置(有些平臺上忽略這個參數).然后調用其ShowModal函數并且判斷函數返回值,如果返回值為wxID_OK則表明用戶確認了文件的選擇. 目錄名和文件名組成一個文件全路徑.如果目錄名為空,則默認為當前工作目錄,如果文件名為空,則沒有默認文件名. 通配符用來確定哪種類型的文件應該顯示在對話框中.通配符可以用"|"分割多種文件類型,并且可以提供文件類型的描述文字,具體格式如下所示: ``` BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif ``` 如果在文件名文本區輸入一個帶有通配符("*","?")的文件名,然后點確定按鈕,將會導致只有符合這個通配名的文件名被顯示. wxFileDialog的類型 如下表所示: | wxSAVE | 指定為一個保存文件對話框. | |:--- |:--- | | wxOPEN | 指定為一個打開文件對話框(默認行為). | | wxOVERWRITE_PROMPT | 對于保存文件對話框,如果目標文件已經存在,則提示是否覆蓋. | | wxFILE_MUST_EXIT | 用戶只能選擇已經存在的文件. | | wxMULTIPLE | 用戶可以選擇多個文件. | wxFileDialog的成員函數 Getdirectory返回默認的目錄名或者單選文件對話框中選中文件的所在的目錄名,使用SetDirectory設置默認目錄. GetFilename返回不包括目錄部分的默認文件名或者單選文件對話框中選中的文件的文件名.使用SetFilename設置默認文件名. GetFilenames使用wxArrayString類型返回多選文件對話框中所有選中的文件名.通常,這些文件名是不含有路徑的, 但是在windows平臺上,如果選中的是一個快捷方式文件,windows可能會增加上一個全路徑,因為應用程序無法通過通過增加當前的目錄的方式來得到其全路徑.使用GetPaths可以得到包含全路徑在內的已選中文件的列表. GetFilterIndex用來返回默認的基于0的過濾器的索引.過濾器通常以一個下拉框的方式顯示.使用SetFilterIndex設置默認的過濾器索引. GetMessage返回對話框的標題文本. 使用SetMessage函數來設置標題文本. GetPath以全路徑的方式返回單選文件框中默認文件或者選中文件名.對于多選框,應使用GetPaths函數. GetWildcard返回指定的通配符, SetWildcard用來設置通配符. wxFileDialog例子 下面的代碼用來創建和顯示一個用來打開BMP或者GIF類型文件的對話框: ``` #include "wx/filedlg.h" wxString caption = wxT("Choose a file"); wxString wildcard = wxT("BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"); wxString defaultDir = wxT("c:\\temp")); wxString defaultFilename = wxEmptyString; wxFileDialog dialog(parent, caption, defaultDir, defaultFilename, wildcard, wxOPEN); if (dialog.ShowModal() == wxID_OK) { wxString path = dialog.GetPath(); int filterIndex = dialog.GetFilterIndex(); } ``` wxDirDialog wxDirDialog用來讓用戶選擇一個本地或者網絡文件夾.如果在構造函數中設置了可選類型wxDD_NEW_DIR_BUTTON,則對話框將顯示一個用來創建新文件夾的按鈕. 下圖演示了windows平臺上的目錄對話框的樣子,這是windows系統提供的原生控件: ![](img/mht8C9E%281%29.tmp) linux平臺上通常使用GTK+版本的wxDirDialog,如下圖所示: ![](img/mht8CB0%281%29.tmp) Mac平臺上的wxDirDialog和文件選擇對話框非常相似,如下圖所示: ![](img/mht8CB3%281%29.tmp) 創建一個目錄對話框需要傳遞的參數包括:一個父窗口,一個標題文本,一個默認路徑,一個窗口類型以及一個位置和大小(最后兩個參數在某些平臺上被忽略),然后調用ShowModal函數,判斷返回值是否為wxID_OK以確定用戶是否進行了選擇. wxDirDialog成員函數 SetPath和GetPath用來獲得和設置用戶選擇的目錄. SetMessage和GetMessage用來獲取和設置標題文本. wxDirDialog使用舉例 ``` #include "wx/dirdlg.h" wxString defaultPath = wxT("/"); wxDirDialog dialog(parent, wxT("Testing directory picker"), defaultPath, wxDD_NEW_DIR_BUTTON); if (dialog.ShowModal() == wxID_OK) { wxString path = dialog.GetPath(); wxMessageBox(path); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看