【发布时间】:2013-03-18 09:45:06
【问题描述】:
我正在使用 wxPython 构建一个应用程序,并且我在博客的某处看到您不能在同一应用程序上同时使用 wx.FD_OPEN 和 wx.FD_SAVE,这是真的吗?
如果这是真的,这是否意味着我必须搬到 Tkinter?
编辑:我目前拥有的。
SAVE_FILE_ID = wx.NewId()
self.Bind(wx.EVT_MENU, self.saveFile, id=SAVE_FILE_ID)
LOAD_FILE_ID = wx.NewId()
self.Bind(wx.EVT_MENU, self.loadFile, id=LOAD_FILE_ID)
accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('O'), LOAD_FILE_ID ),
(wx.ACCEL_CTRL, ord('S'), SAVE_FILE_ID )])
self.SetAcceleratorTable(accel_tbl)
def saveFile(self, event):
saveFileDialog = wx.FileDialog(self, "Save As", "", "",
"Python files (*.py)|*.py",
wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
self.text.SaveFile(saveFileDialog.GetPath())
event.Skip()
def loadFile(self, event):
openFileDialog = wx.FileDialog(self, "Open", "", "",
"Python files (*.py)|*.py",
wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
self.text.LoadFile(openFileDialog.GetPath())
event.Skip()
【问题讨论】:
-
1) 是的,that's true。 2)不是真的。为什么你这么想?打开和保存是用于不同目的的不同对话框
-
打开和另存为在我的程序的同一个菜单中,我怎样才能通过我的加速器使两个对话框都工作?它不适用于加载,但可以用于保存,因为保存在我的代码中是第一位的。
-
@vjgaero 我想你误会了。您可以分开打开和保存对话框没有问题。这就是您在代码中所做的。你不能做的是一个打开和保存的对话框(即一个样式为
wx.FD_OPEN | wx.FD_SAVE的对话框)