wxPython 实践(六)对话框
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