wxPythonでファイルダイアログ

wxPythonで長時間実行されるタスク中にGUIの応答性を維持する方法 - メグタンの何でもブログ の続き

wxPythonでファイルダイアログを開く

Openダイアログ

    def m_menuOpenOnMenuSelection( self, event ):
        wildcard = "Python source (*.py)|*.py|"     \
           "Compiled Python (*.pyc)|*.pyc|" \
           "SPAM files (*.spam)|*.spam|"    \
           "Egg file (*.egg)|*.egg|"        \
           "All files (*.*)|*.*"
        dlg = wx.FileDialog(self,
            message="Choose a file",
            defaultDir=os.getcwd(),
            defaultFile="",
            wildcard=wildcard,
            style=wx.FD_OPEN | wx.FD_MULTIPLE |
                  wx.FD_CHANGE_DIR | wx.FD_FILE_MUST_EXIST |
                  wx.FD_PREVIEW
            )

        if dlg.ShowModal() == wx.ID_OK:
        # This returns a Python list of files that were selected.
            paths = dlg.GetPaths()
        dlg.Destroy()

Saveダイアログ

    def m_menuSaveOnMenuSelection( self, event ):
        wildcard = "Python source (*.py)|*.py|"     \
           "Compiled Python (*.pyc)|*.pyc|" \
           "SPAM files (*.spam)|*.spam|"    \
           "Egg file (*.egg)|*.egg|"        \
           "All files (*.*)|*.*"
        dlg = wx.FileDialog(self,
            message="Save file as ...",
            defaultDir=os.getcwd(),
            defaultFile="",
            wildcard=wildcard,
            style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT
            )
        # This sets the second filter as the default filter  
        dlg.SetFilterIndex(2)
        if dlg.ShowModal() == wx.ID_OK:
            path = dlg.GetPath()
            # fp = file(path, 'w') # Create file anew
            # fp.write(data)
            # fp.close()
        dlg.Destroy()