【发布时间】:2021-12-29 19:49:21
【问题描述】:
我希望能够在 wxPython 中清除我的保存文件对话框文件名。我的意思是说如果我这样做了
saveFileDialog.GetFilename()
说这会返回
test.txt
我怎样才能做到,所以当我再次执行 GetFilename() 时,它会返回
""
而不是
test.txt
?我不太确定该怎么做,但提前谢谢!
【问题讨论】:
标签: wxpython
我希望能够在 wxPython 中清除我的保存文件对话框文件名。我的意思是说如果我这样做了
saveFileDialog.GetFilename()
说这会返回
test.txt
我怎样才能做到,所以当我再次执行 GetFilename() 时,它会返回
""
而不是
test.txt
?我不太确定该怎么做,但提前谢谢!
【问题讨论】:
标签: wxpython
这里我使用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()
【讨论】: