设置打开和保存对话框的扩展类型

时间:2012-06-25 12:54:16

标签: python wxpython

我希望打开的对话框按*.spectrum过滤文件或不过滤文件(*.* all files)。

我还希望保存对话框在保存时建议.spectrum扩展名。常见的new file.ext突出显示new file,以便我们覆盖。


我为这两个选项设置了wildcard = "*.spectrum",但请给我一个更完整的解决方案。

1 个答案:

答案 0 :(得分:1)

我写了几篇关于这个主题的文章:

基本上你想要的打开和保存对话框是这样的:

wildcard = "Python source (*.spectrum)|*.spectrum|" \
           "All files (*.*)|*.*"

然后在代码中,你会做这样的事情:

def onOpenFile(self, event):
    """
    Create and show the Open FileDialog
    """
    dlg = wx.FileDialog(
        self, message="Choose a file",
        defaultDir=self.currentDirectory, 
        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()

#----------------------------------------------------------------------
def onSaveFile(self, event):
    """
    Create and show the Save FileDialog
    """
    dlg = wx.FileDialog(
        self, message="Save file as ...", 
        defaultDir=self.currentDirectory, 
        defaultFile="", wildcard=wildcard, style=wx.SAVE
        )
    if dlg.ShowModal() == wx.ID_OK:
        path = dlg.GetPath()
        print "You chose the following filename: %s" % path
    dlg.Destroy()

注意:代码直接来自我的博客,只是略有修改。