如何在 wxPython 中清除保存文件对话框文件名

How to clear save file dialog filename in wxPython

我希望能够在 wxPython 中清除我的保存文件对话框文件名。我的意思是说如果我这样做

saveFileDialog.GetFilename()

说这个 returns

test.txt

我怎样才能做到,当我再次执行 GetFilename() 时,它将 return

""

而不是

test.txt

?我不太确定该怎么做,但在此先感谢!

这里我使用SetFilename方法重新设置路径

import wx


class MainFrame(wx.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(None, *args, **kwargs)
        self.size = (400, 1000)
        self.Title = 'wx App'
        self.Bind(wx.EVT_CLOSE, self.on_quit_click)

        self.panel = MainPanel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.panel)
        self.SetSizer(sizer)
        self.Center()
        self.Show()
        self.save_dialog = wx.FileDialog(self, style=wx.FD_SAVE)

    def on_save(self, event):
        self.save_dialog.ShowModal()

    def on_check(self, event):
        print(f'filename={self.save_dialog.GetFilename()}')
        self.save_dialog.SetFilename('')

    def on_quit_click(self, event):
        del event
        wx.CallAfter(self.Destroy)


class MainPanel(wx.Panel):
    def __init__(self, parent, *args, **kwargs):
        super().__init__(parent, *args, **kwargs)

        self.parent = parent
        # self.file_picker = wx.FilePickerCtrl(self, style=wx.FLP_SAVE)
        btn_save = wx.Button(self, id=wx.ID_SAVE)
        btn_save.Bind(wx.EVT_BUTTON, self.parent.on_save)
        btn_check = wx.Button(self, id=wx.ID_OK)
        btn_check.Bind(wx.EVT_BUTTON, self.parent.on_check)
        sizer = wx.BoxSizer(wx.VERTICAL)
        # sizer.Add(self.file_picker)
        sizer.Add(btn_save)
        sizer.Add(btn_check)
        self.SetSizer(sizer)

if __name__ == '__main__':
wx_app = wx.App()
MainFrame()
wx_app.MainLoop()