2.5 KiB
2.5 KiB
wxPython:在 wx 中显示 2 种文件类型。文件对话框
原文:https://www.blog.pythonlibrary.org/2011/02/10/wxpython-showing-2-filetypes-in-wx-filedialog/
前几天在 freenode 上的 wxPython IRC 频道上,一个成员问是否有一种方法可以制作 wx。FileDialog 一次显示多个文件类型。在内心深处,我认为我已经看到了一个微软的产品可以做到这一点,但我从来没有见过任何 wxPython 的例子。在这个简短的教程中,你将学会如何做这个简单的技巧!
以下是您需要的代码:
import wx
wildcard = "Python source (*.py; *.pyc)|*.py;*.pyc|" \
"All files (*.*)|*.*"
########################################################################
class MyForm(wx.Frame):
#----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY,
"Multi-file type wx.FileDialog Tutorial")
panel = wx.Panel(self, wx.ID_ANY)
btn = wx.Button(panel, label="Open File Dialog")
btn.Bind(wx.EVT_BUTTON, self.onOpenFile)
#----------------------------------------------------------------------
def onOpenFile(self, event):
"""
Create and show the Open FileDialog
"""
dlg = wx.FileDialog(
self, message="Choose a file",
defaultFile="",
wildcard=wildcard,
style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR
)
if dlg.ShowModal() == wx.ID_OK:
paths = dlg.GetPaths()
print "You chose the following file(s):"
for path in paths:
print path
dlg.Destroy()
#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()
这段代码中的关键字在通配符变量中。仔细看,你会注意到里面有一些分号。第一个字符串后半部分的分号才是我们关心的。它告诉对话框只显示*。py 和*。pyc 文件。是的,就是这么简单。前半部分可以是您想要的任何内容,但是建议您告诉您的用户他们可以期望它返回什么文件类型。
这就是全部了。当你创建自己的文件对话框时,一定要记住这个技巧。你可能只是需要它!
