wxPython 實踐(一)概述
wxPython 實踐(二)基礎控件
wxPython 實踐(三)頁面布局
wxPython 實踐(四)事件響應
wxPython 實踐(五)高級控件
wxPython 實踐(六)對話框
wxPython 實踐(七)GDI 介紹
wxPython 實踐(八)其他
文章目錄
- 1. wx.Dialog(對話框)
- 2. wx.MessageDialog(消息對話框)
- 2.1. wx.MessageBox(消息框)
- 2.2. wx.MessageDialog(消息對話框)
- 3. wx.About
- 4. wx.*ChoiceDialog(列表對話框)
- 4.1. wx.SingleChoiceDialog(單選列表對話框)
- 4.2. wx.GetSingleChoice
- 4.3. wx.MultiChoiceDialog
- 5. wx. ProgressDialog(進度對話框)
- 6. wx.FileDialog(文件對話框)
- 6.1. wx.FileDialog
- 6.2. wx.FileSelector
- 7. wx.DirDialog(目錄對話框)
- 7.1. wx.DirDialog
- 7.2. wx.DirSelector
- 8. wx.ColourDialog(顏色對話框)
- 9. FontDialog(字體對話框)
- 10. wx.PrintDialog(打印)
- 10.1. wx.PrintDialog
- 10.1. wx.PrintDialogData
- 10.1. wx.PageSetupDialog
- 11. wx. FindReplaceDialog(查找替換)
- 11.1. wx. FindReplaceDialog
- 11.2. wx.FindReplaceData
- 12. wx.adv.Wizard
官網
https://docs.wxpython.org/wx.1moduleindex.html
https://www.w3ccoo.com/wxpython/wxpython_major_classes.html
系列文章:
https://wintel.blog.csdn.net/?type=blog
1. wx.Dialog(對話框)
wx.Dialog 類是所有對話框窗口類的的基類,一個對話框應用類一般都從 wx.Dialog 類或者其子類派生(wx.PrintDialog例外,它調用系統原生對話框)。wx.Dialog 常用來完成一個交互任務或者作為應用的頂層窗口使用。
對話框分為兩種類型:
- 模態對話框:在關閉之前,不能與同一個應用程序的其他窗口進行交互,它是阻塞式調用方式,模態對話框通過調用 ShowModal() 方法實現;使用模式對話框時,事件就在對話框內部循環,必須將對話框關閉才能繼續執行主界面的操作。對于參數選擇的對話框,一般用模態對話框。
- 非模態對話框:既可以和它交互,也可以和同一個應用程序的其他窗口交互。它是非阻塞式調用方式,非模態對話框調用 Show() 方法實現。對于顯示或查看某些內容的對話框,一般用非模態對話框。
wx.Dialog 對話框是一個帶有標題欄的窗口(必要時候還帶有一個系統菜單)。在一個對話框中可以包含控件和其他窗口,通過這些控件和窗口,用戶可以做出一些選擇或者回答一些問題等等。對話框可以自動滾動。
通常情況下,一個對話框包含一個甘比按鈕,或者包含兩個按鈕,一個用于確認(OK),一個用于取消(Cancel)。如果有取消按鈕,當用戶按下”Esc”鍵時,則會自動激活該按鈕的功能。在默認情況下,wx.Dialog 帶有兩個標準的按鈕 wx.ID_OK 和wx.ID_CANCEL 。
窗口樣式:
- wx.CAPTION:在對話框上添加標題。
- wx.DEFAULT_DIALOG_STYLE:相當于wx.CAPTION, wx.CLOSE_BOX兩者組合。
- wx.RESIZE_BORDER:在窗口周圍顯示可調整大小的框架。
- wx.SYSTEM_MENU:顯示系統菜單。
- wx.CLOSE_BOX:在框架上顯示一個關閉框。
- wx.MAXIMIZE_BOX:在對話框上顯示一個最大化框。
- wx.MINIMIZE_BOX:在對話框上顯示一個最小化框。
- wx.THICK_FRAME:在窗口周圍顯示粗框。
- wx.STAY_ON_TOP:對話框位于所有其他窗口的頂部。
- NO_3D:此樣式已過時,不再做任何事情,請勿在任何新代碼中使用它。 - wx.DIALOG_NO_PARENT:默認情況下,父窗口為None的對話框將以應用程序的頂級窗口作為父窗口。使用這種風格可以防止這種情況發生,并創建一個孤立的對話框。對于模式對話框,不建議這樣做。
- wx.DIALOG_EX_CONTEXTHELP:在Windows下,在標題上放置一個查詢按鈕。當按下按鈕時,Windows將進入上下文敏感的幫助模式,如果用戶單擊應用程序窗口,wxPython將發送一個wx.EVT_HELP事件。注意,這是一個擴展樣式,必須在調用Create之前調用SetExtraStyle來設置。
- wx.DIALOG_EX_METAL:在macOS上,這種風格的框架將顯示為金屬外觀。這是一個擴展風格。
常用方法:
- Centre(self, direction=BOTH):窗口居中顯示,direction取值為wx.HORIZONTAL, wx.VERTICAL 和 wx.BOTH。
- GetReturnCode(self):獲得窗口的返回碼。
- EndModal(self, retCode):結束一個模式對話框,傳遞一個從ShowModal調用返回的值。
- Iconize(self, iconize=True):將窗口圖標化或者恢復正常。僅在Windows系統下有效。
- IsIconized(self):如果窗口被圖標化,則返回True。僅在Windows系統下有效。
- IsModal(self):如果是模式對話框則返回True,否則返回False。
- SetIcon(self, icon):設置對話的圖標。
- SetReturnCode(self, retCode):設置對話框的返回碼。
- Show(self, show=True):顯示或者隱藏對話框。
- ShowModal(self):顯示一個模式對話框。注意,此函數創建了一個臨時事件循環,該事件循環優先于應用程序的主事件循環。
import wxclass MyDialog(wx.Dialog):def __init__(self, parent, title):# super(ModalDialog, self).__init__(parent, title=title)super().__init__(parent=parent)self.SetTitle(title)vBox = wx.BoxSizer(wx.VERTICAL)hBox2 = wx.BoxSizer(wx.HORIZONTAL)okButton = wx.Button(self, label="確認")closeButton = wx.Button(self, label="關閉")hBox2.Add(okButton)hBox2.Add(closeButton, flag=wx.LEFT, border=5)okButton.Bind(wx.EVT_BUTTON, self.OnClose)closeButton.Bind(wx.EVT_BUTTON, self.OnClose)vBox.Add(hBox2, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=10)self.SetSizer(vBox)self.Fit()self.Center()# # 設置對話框為模態# self.ShowModal()def OnClose(self, e):self.Destroy()class MyWin(wx.Frame):def __init__(self, parent, title):super().__init__(parent=parent)self.SetTitle(title=title)toolbar = self.CreateToolBar()# # 設置圖標大小toolbar.SetToolBitmapSize((20, 20))setting_button = toolbar.AddTool(wx.ID_SETUP, "Setting", wx.Bitmap("icons/setting.png"))toolbar.Realize()toolbar.Bind(wx.EVT_TOOL, self.OnChangeDepth)self.Centre()def OnChangeDepth(self, e):dlg = MyDialog(None, "MyDialog")dlg.ShowModal()dlg.Destroy()if __name__ == '__main__':app = wx.App()window = MyWin(None, title="Dialog Parent")window.Show()app.MainLoop()
https://blog.csdn.net/qq_45587822/article/details/105205538
https://wintel.blog.csdn.net/article/details/130894366?spm=1001.2014.3001.5502
2. wx.MessageDialog(消息對話框)
https://wintel.blog.csdn.net/article/details/130788635?spm=1001.2014.3001.5502
2.1. wx.MessageBox(消息框)
def OnChangeDepth(self, e):wx.MessageBox("MyMessageBox", "信息", wx.OK|wx.ICON_INFORMATION)
在這個例子中,我們展示了一個 OK 按鍵和一個 Information 圖標。
默認模態展示。
2.2. wx.MessageDialog(消息對話框)
支持樣式:
- wx.OK: 在對話框上顯示一個OK按鈕,它可以和CANCEL按鈕組合;
- wx.Cancel: 在對話框上顯示一個Cancel按鈕, 它可以和OK以及YES_NO按鈕組合;
- wx.YES_NO: 在對話框上同時顯示Yes和No按鈕,推薦使用這種樣式的時候和CANCEL組合;
- wx.HELP: 在對話框上顯示Help按鈕,如果其標簽為系統缺省值,則它可以特殊的外觀和位置;
- wx.YES_DEFAULT: Yes按鈕為默認值;
- wx.NO_DEFAULT: No按鈕為默認值;
- wx.CANCEL_DEFAULT: Cancel按鈕為默認值;
- wx.ICON_NONE: 如果可能,在對話框上不顯示任何圖標;
- wx.ICON_ERROR: 在對話框上顯示一個錯誤圖標;
- wx.ICON_WARNING: 在對話框上顯示一個警告圖標;
- wx.ICON_QUESTION: 在對話框上顯示一個問號標志;
- wx.ICON_INFOMATION: 在對話框上顯示一個信息圖標;
- wx.ICON_EXCLAMATION: 同wx.ICON_WARNING;
- wx.ICON_HAND: 同wx.ICON_ERROR;
- wx.ICON_AUTH_NEEDED: 顯示身份驗證所需的符號;
- wx.STAY_ON_TOP: 使消息框保持在所有其他窗口之上 (目前僅在MSW和GTK下實現);
- wx.CENTRE: 將消息框置于其父消息框的中央,如果未指定其父消息框,則將消息框置于屏幕中央。在MSW下設置此樣式沒有區別,因為對話框始終以父對象為中心。
def OnChangeDepth(self, e):# wx.MessageBox("MyMessageBox", "信息", wx.OK|wx.ICON_INFORMATION)# dlg = wx.MessageDialog(None, "MyMessageDialog", "錯誤", wx.OK|wx.ICON_ERROR)dlg = wx.MessageDialog(parent=None, message="MyMessageDialog", caption="信息", style=wx.OK|wx.ICON_ERROR)dlg.ShowModal()
消息對話框對話框顯示單行或多行消息,它比消息框(wx.MessageBox)更加靈活,可定制更多的特性,比如可以更改消息對話框的圖標或者按鈕等。
創建消息對話框比較簡單。通過將 parent 參數設置為 None,可以將對話框設置為頂層窗口。接著的兩個字符串參數為消息內容和對話框的標題。調用 ShowModal() 函數,可以將對話框顯示在屏幕上。
3. wx.About
為了創建一個 About 對話框,我們需要新建兩個對象:一個是 wx.AboutDialogInfo,另一個是 wx.AboutBox。
wxPython 可以展示兩種 About 框,取決于我們使用哪個平臺以及調用哪個方法,可以是原生的對話框也可以是 wxPython 類的對話框。Windows 原生對話框無法展示自定義的圖標、許可文字以及URL鏈接。如果我們忽略這三個參數, wxPython 將展示一個原生的對話框,否則它將展示一個 wxPython 對話框。如果想盡可能的保持原生的話,建議在一個單獨的菜單項提供許可信息。GTK+ 可以顯示所有這些信息。
wx.AboutDialogInfo 提供了一系列方法來設置 About 對話框所需要的相關信息。其常用方法有:
- SetIcon: 設置一個圖標;
- SetName: 設置應用的名稱;
- SetDescription: 設置應用的描述信息;
- SetCopyright: 設置應用的版權信息;
- SetWebSite: 設置網站地址;
- SetLicence: 設置應用的許可信息;
- AddDeveloper: 添加開發者;
- AddDocWriter: 添加文檔作者;
- AddArtist: 添加美術設計者;
- AddTranslator: 添加翻譯者。
根據上面這些信息,AbouBox 可以顯示一個關于應用的比較全面的信息。
def OnChangeDepth(self, e):about_info = wx.adv.AboutDialogInfo()wx.adv.AboutBox(about_info)# try:# AboutDialogInfo = wx.AboutDialogInfo# AboutBox = wx.AboutBox# except AttributeError:# AboutDialogInfo = wx.adv.AboutDialogInfo# AboutBox = wx.adv.AboutBox# info = AboutDialogInfo(self)# # info.SetIcon(wx.Icon("images\python.png", wx.BITMAP_TYPE_PNG))# info.SetName("My wxPython Program")# info.SetVersion("1.0")# info.SetDescription("這是一個AboutBox演示程序")# info.SetCopyright("(C) 2023 My name")# info.SetWebSite("http://www.myprogram.com")# info.SetLicence("本程序放棄版權,可自由傳播")# info.AddDeveloper("Developer name")# info.AddDocWriter("Document writer")# info.AddArtist("Artist")# info.AddTranslator("Translator")# AboutBox(info)
代碼均報錯
https://docs.wxpython.org/wx.adv.AboutDialogInfo.html
https://www.kancloud.cn/apachecn/zetcode-zh/1950266
https://juejin.cn/post/7491589110248456229
https://wintel.blog.csdn.net/article/details/130788669?spm=1001.2014.3001.5502
4. wx.*ChoiceDialog(列表對話框)
https://wintel.blog.csdn.net/article/details/130894507?spm=1001.2014.3001.5502
4.1. wx.SingleChoiceDialog(單選列表對話框)
wx.SingleChoiceDialog 實現一個顯示字符串列表的對話框,它允許用戶從該字符串列表中選擇一個。雙擊列表項等同于單擊該列表項并按下”確認”按鈕(即wx.OK按鈕)。
wx.SingleChoiceDialog(parent, message, caption,choices, style, pos)
參數:
- parent:父窗口。
- message:顯示在對話框上的消息。
- caption:對話框標題信息。
- choices:包含選項的字符串數組或字符串列表。
- style:對話框樣式(位列表),包含從標準對話框樣式中選擇的標志和類文檔中列出的標志。默認值為 CHOICEDLG_STYLE, 相當于 wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.OK | wx.CANCEL | wx.CENTRE。
- pos:對話框位置,默認值為 wx.DefaultPosition。
常用方法:
- GetSelection(self):返回當前選中項的索引。
- GetStringSelection(self):返回當前選中的字符串。
- SetSelection(self, selection):設置索引為 selection 的項初為始選中項。
- ShowModal(self): 顯示對話框,如果點擊了 wx.OK 按鈕則返回 wx.ID_OK,否則返回 wx.ID_CANCEL。
def OnChangeDepth(self, e):choices = ["一", "二", "三", "四", "五"]# dlg = wx.SingleChoiceDialog(None, "選擇一個數字", "選擇", choices)dlg = wx.SingleChoiceDialog(parent=None, message="選擇一個數字", caption="單選", choices=choices)if dlg.ShowModal() == wx.ID_OK:txt = "當前的選擇數字是: " + dlg.GetStringSelection()else:txt = "未選擇" dlg.Destroy()
4.2. wx.GetSingleChoice
調用 wx.GetSingleChoce 全局方法,可以彈出一個單選列表對話框。
wx.GetSingleChoce(message, caption, choices, initialSelection, parent=None)
參數:
- message:顯示在對話框上的消息。
- caption:對話框標題信息。
- choices:包含選項的字符串數組或字符串列表。
- initialSelection:初始選擇索引值。
- parent:父窗口。默認值為None。
wx.GetSingleChoice 返回的選中的字符串值。
def OnChangeDepth(self, e):choices = ["一", "二", "三", "四", "五"]# # dlg = wx.SingleChoiceDialog(None, "選擇一個數字", "選擇", choices)# dlg = wx.SingleChoiceDialog(parent=None, message="選擇一個數字", caption="單選", choices=choices)# if dlg.ShowModal() == wx.ID_OK:# txt = "當前的選擇數字是: " + dlg.GetStringSelection()# else:# txt = "未選擇"# print(txt)# dlg.Destroy()txt = wx.GetSingleChoice("選擇一個數字", "單選", choices, 1)print(txt)
效果同上。
4.3. wx.MultiChoiceDialog
wx.MultiChoiceDialog 實現一個顯示字符串列表的對話框,它允許用戶從該字符串列表中選擇一個或多個字符串。
wx.MultiChoiceDialog (parent, message, caption,n,choices, style, pos)
參數:
- parent:父窗口。
- message:顯示在對話框上的消息。
- caption:對話框標題信息。
- n:選擇項的數量
- choices:包含選項的字符串數組或字符串列表。
- style:對話框樣式(位列表),包含從標準對話框樣式中選擇的標志和類文檔中列出的標志。默認值為CHOICEDLG_STYLE, 相當于wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.OK | wx.CANCEL | wx.CENTRE。
- pos:對話框位置,默認值為 wx.DefaultPosition。
常用方法:
- GetSelections(self):返回當前選中項的索引列表。
- SetSelections(self, selections):設置初始選中項的索引列表。
- ShowModal(self): 顯示對話框,如果點擊了 wx.OK 按鈕則返回 wx.ID_OK,否則返回 wx.ID_CANCEL。
def OnChangeDepth(self, e):choices = ["一", "二", "三", "四", "五"]# # dlg = wx.SingleChoiceDialog(None, "選擇一個數字", "選擇", choices)# dlg = wx.SingleChoiceDialog(parent=None, message="選擇一個數字", caption="單選", choices=choices)# if dlg.ShowModal() == wx.ID_OK:# txt = "當前的選擇數字是: " + dlg.GetStringSelection()# else:# txt = "未選擇"# print(txt)# dlg.Destroy()# txt = wx.GetSingleChoice("選擇一個數字", "單選", choices, 1)# print(txt)dlg = wx.MultiChoiceDialog(None, "選擇一個數字", "選擇", choices)if dlg.ShowModal() == wx.ID_OK:sel = dlg.GetSelections()txt = "當前的選擇數字是: " for index in sel:txt += choices[index]txt += " "else:txt = "未選擇"print(txt)dlg.Destroy()
5. wx. ProgressDialog(進度對話框)
wx.ProgreessDialog 表示一個顯示短消息和進度條的對話框。它提供了進度對話框的通用實現。它可以顯示終止(ABORT)和跳過(SKIP)按鈕,以及進度結束的消耗時間、剩余時間和估計時間。
盡管 wx.ProgressDialog 并不是真正的模式對話框,但它就像其它模式對話框一樣,它應該創建在堆棧上,而不是堆上,應該像下面的代碼這樣使用它:
progdlg = wx.ProgressDialog(...)
for i in range(100):if not progdlg.Update(i):# Cancelled by user.break... do something time-consuming (but not too much) ...
窗口樣式:
- wx.PD_APP_MODAL:使進度對話框進入應用程序模式,即禁用所有應用程序窗口,只顯示進度對話框。如果沒有給出這個標志,它只是”局部”模式。
- wx.PD_AUTO_HIDE:一旦達到進度表的最大值,進度對話框從界面上消失。如果不存在這種樣式,一旦達到最大值,對話框就會變成模態對話框(請參閱wx.Dialog.ShowModal),并等待用戶解除它。
- wx.PD_SMOOTH:平滑進度控制(使用GA_SMOOTH模式的wx.Gauge控件)。
- wx.PD_CAN_ABORT:這個標志告訴對話框它應該有一個“取消”按鈕,用戶可以按下這個按鈕。如果發生這種情況,下一次調用Update將返回False。
- wx.PD_CAN_SKIP:這個標志告訴對話框它應該有一個用戶可以按下的“跳過”按鈕。如果發生這種情況,下一次對Update的調用將在其skip參數中返回True。
- wx.PD_ELAPSED_TIME:這個標志告訴對話框它應該顯示流逝的時間(自創建對話框以來)。
- wx.PD_ESTIMATED_TIME:這個標志告訴對話框它應該顯示估計的時間。
- wx.PD_REMAINING_TIME:這個標志告訴對話框它應該顯示剩余時間。
def OnChangeDepth(self, e):porgressMax = 100dlg = wx.ProgressDialog("進度條演示", "進度", porgressMax, style=wx.PD_CAN_ABORT|wx.PD_ELAPSED_TIME|wx.PD_REMAINING_TIME)keepGoing = Truecount = 0 while keepGoing and count < porgressMax:count += 1wx.MilliSleep(100)keepGoing = dlg.Update(count)dlg.Destroy()
6. wx.FileDialog(文件對話框)
6.1. wx.FileDialog
wx.FileDialog 構造函數支持設置文件的缺省路徑:
- 參數 defaultDir 指定要選擇的文件所在的缺省文件夾,如果該參數為空白,則目錄為當前文件夾;
- 參數 defaultFile 為默認文件,如果該參數為空白,則不提供默認文件;
- 參數 wardcard 為匹配通配符,wx.FileDialog 允許用戶選擇一個或者多個文件,在使用通配符的情況下,可以讓用戶才只選擇關心的文件。例如,"BMP files (.bmp)|.bmp|GIF files (.gif)|.gif"只會顯示和選擇圖片后綴類型是bmp和gif 的文件;
- 參數 style 則指定對話框的打開樣式。這些樣式包括:
- wx.FD_OPEN: 單個文件選擇對話框;
- wx.FD_SAVE: 文件保存對話框;
- wx. FD_OVERWRITE_PROMPT: 只對保存對話框有效,當覆蓋文件的時候,會彈出提醒對話框;
- wx.FD_MULTIPLE:只對打開對話框有效,支持選擇多個文件;
- wx.FD_CHANGE_DIR:改變當前工作目錄為用戶選擇的文件夾。
常用方法:
- GetDirectory(self): 返回對話框默認的文件夾;
- GetFilename(self): 返回對話框默認的文件名;
- GetFilenames(self): 返回用戶選擇的文件列表;
- GetFileIndex(self): 返回通配符參數中提供的默認篩列表的索引(可選);
- GetMessage(self): 返回文件對話框的標題信息;
- GetPath(self): 返回選擇的文件的全路徑(包括文件路徑和文件名);
- GetPaths(self): 在多選情況下,返回用戶選擇的文件全路徑列表;
- GetWildcard(self): 返回通配符;
- SetDirectory(self, dir): 設置對話框默認的文件目錄;SetFileName(self, name): 設置對話框默認的文件名;
- SetFilterIndex(self, filterIndex): 設置默認篩選器索引,從0開始;
- SetMessage(self, message): 設置對話框的標題信息;
- SetPath(self, path): 設置默認選擇的文件全路徑名;
- SetWildCard(self, wildcard): 設置對話框文件類型通配符;
- ShowModal(self): 顯示對話框,如果點擊了wx.OK按鈕則返回wx.ID_OK,否則返回wx.ID_CANCEL。
def OnChangeDepth(self, e):porgressMax = 100fileFilter = "Image Files (*.bmp)|*.bmp|" "All files (*.*)|*.*"fileDialog =wx.FileDialog(self, message="選擇單個文件", wildcard=fileFilter, style=wx.FD_OPEN)dialogResult = fileDialog.ShowModal()if dialogResult != wx.ID_OK:returnpath = fileDialog.GetPath()print(path)
選擇單個文件, 其窗口樣式參數為 wx.FD_OPEN,獲得一個要打開的文件名;
保存文件, 其窗口樣式參數為 wx.FA_SAVE,獲得一個要保存的文件名;
保存文件并提醒,其窗口樣式參數為 wx.FA_SAVE| wx. FD_OVERWRITE_PROMPT,在保存文件時,如果文件已存在,則顯示提示信息;
多文件選擇,其窗口樣式參數為 wx.FD_OPEN| wx.FD_MULTIPLE。
https://wintel.blog.csdn.net/article/details/130788682?spm=1001.2014.3001.5502
6.2. wx.FileSelector
調用 wx.FileSelector 全局方法, 可以彈出一個文件選擇對話框,該方法的原型為:
wx.FileSelector(message, defautPath, defaultFile, defaultExtension, wildcard, flags, parent, x, y)
參數:
- message: 文件選擇器的標題。
- defautPath: 默認路徑,缺省為空白。
- defaultFile:默認文件名,缺省為空白。
- defaultExtension:默認文件擴展名,缺省為空白。
- wildcard:通配符,缺省為“.”。
- parent:父窗口。
- x:選擇器水平顯示位置。
- y:選擇器垂直顯示位置。
def OnChangeDepth(self, e):fileFilter = "Image Files (*.bmp)|*.bmp|" "All files (*.*)|*.*"# filename = wx.FileSelector("選擇單個文件", "", "", "js", fileFilter, wx.FD_OPEN, self)filename = wx.FileSelector(message="", default_path="", default_filename="", default_extension="", wildcard=fileFilter, flags=wx.FD_OPEN, parent=self)print(filename)
效果同上。
7. wx.DirDialog(目錄對話框)
7.1. wx.DirDialog
wx.DirDialog提供一個目錄選擇對話框。
窗口樣式:
- wx.DD_DEFAULT_STYLE: 等價于wx.DEFAULT_DIALOG_STYLE和wx.RESIZE_BORDER的組合;
- wx.DD_DIR_MUST_EXIST: 在這種樣式下,對話框將允許用戶選擇一個現有的文件夾, 當參數中沒有設置這種樣式時,將在對話框中添加”創建新目錄”按鈕(在Windows上)或者提供其他方式讓用戶輸入新文件夾的名稱;
- wx.DD_CHANGE_DIR: 將當前工作目錄更改為用戶選擇的目錄。該標志不能與wx.DD_MULTIPLE 一起使用;
- wx.DD_MULTIPLE: 允許用戶選擇多個目錄。該標志僅在wxWidgtes 3.1.4之后的版本才可用。
- wx.DD_SHOW_HIDDEN: 顯示隱藏文件夾和系統文件夾。該標志僅在wxWidgtes 3.1.4之后的版本才可用。
注意:RESIZE_BORDER在Windows下有新舊兩種不同的目錄選擇對話框可以使用,舊版本中的對話框大小是固定的,RESIZE_BORDER隱式地選擇新版本的對話框。在通常情況下新版本更符合程序要求,除非需要顯式地在Window下使用舊的對話框版本,建議始終使用RESIZE_BORDER樣式來創建對話框。
常用方法:
- GetMessage(self): 返回文件對話框的標題信息;
- GetPath(self): 返回缺省或者用戶選擇的文件夾,本方法不同用于帶有 樣式DD_MULTIPLE的窗口中;
- GetPaths(self, paths): 將選擇的文件的全部路徑填充到參數paths中;
- SetMessage(self, message): 設置對話框的標題信息;
- SetPath(self, path): 設置默認選擇的文件路徑;
- ShowModal(self): 顯示對話框,如果點擊了wx.OK按鈕則返回wx.ID_OK,否則返回wx.ID_CANCEL。
dlg = wx.DirDialog(self, message="選擇一個文件夾", style=wx.DD_DEFAULT_STYLE)if dlg.ShowModal() == wx.ID_OK:path = dlg.GetPath()else:path = ""print(path) dlg.Destroy()
效果同上,獲取目錄。
7.2. wx.DirSelector
調用 wx.DirSelector 全局方法,可以彈出一個目錄選擇對話框。
wx.DirSelector(message, defaultPath, style, pos,parent)
參數:
- message: 文件選擇器的標題。
- defautPath: 默認路徑,默認為空白。
- style:對話框風格,參見wx.DirDialog,缺默認值為0。
- pos:對話框位置,默認值為wx.DefaultPosition。
- parent: 父窗口,默認值為空。
dir = wx.DirSelector("選擇一個文件夾")print(dir)
效果同上,獲取目錄。
https://wintel.blog.csdn.net/article/details/130788696?spm=1001.2014.3001.5502
8. wx.ColourDialog(顏色對話框)
https://wintel.blog.csdn.net/article/details/130788730?spm=1001.2014.3001.5502
9. FontDialog(字體對話框)
https://wintel.blog.csdn.net/article/details/130788754?spm=1001.2014.3001.5502
10. wx.PrintDialog(打印)
10.1. wx.PrintDialog
10.1. wx.PrintDialogData
10.1. wx.PageSetupDialog
https://wintel.blog.csdn.net/article/details/130894571?spm=1001.2014.3001.5502
11. wx. FindReplaceDialog(查找替換)
11.1. wx. FindReplaceDialog
11.2. wx.FindReplaceData
https://wintel.blog.csdn.net/article/details/130894657?spm=1001.2014.3001.5502
12. wx.adv.Wizard
https://wintel.blog.csdn.net/article/details/130894723?spm=1001.2014.3001.5502