下面的代码:
#!/usr/bin/env python
import wx
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY,
"File and Folder Dialogs Tutorial")
panel = wx.Panel(self, wx.ID_ANY)
saveFileDlgBtn = wx.Button(panel, label="Show SAVE FileDialog")
saveFileDlgBtn.Bind(wx.EVT_BUTTON, self.onSaveFile)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(saveFileDlgBtn, 0, wx.ALL|wx.CENTER, 5)
panel.SetSizer(sizer)
def onSaveFile(self, event):
"""
Create and show the Save FileDialog
"""
dlg = wx.FileDialog(
self, message="Save file as ...",
defaultDir=".",
defaultFile="", wildcard="*.*", style=wx.SAVE
)
if dlg.ShowModal() == wx.ID_OK:
path = dlg.GetPath()
print path
fp = open(path, 'w')
fp.write("bau bau")
fp.close()
dlg.Destroy()
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()
当我尝试通过文件对话框小部件提供新名称test.txt来保存文件时,在终端上给出以下消息:
(python:16795): Gtk-WARNING **: Unable to retrieve the file info for `file:///home/roberto/python/test.txt': Error stating file '/home/roberto/python/test.txt': No such file or directory
尽管有这样的消息,文件仍然正确保存,但我想了解消息发生的原因以及如何避免它。这是依赖于我系统中安装的gtk库的东西吗?我正在使用gtk版本2.24和python-wxgtk2.8进行debian测试。
非常感谢。
罗伯特
答案 0 :(得分:2)
我已经读过Linux上的一些wxPython发行版启用了调试,这对于了解出现问题的原因非常有用,但它也显示了所有gtk警告。听起来它正确地保存文件,所以你可能不需要担心它。您可以在wxPython邮件列表中询问更多技术说明。
答案 1 :(得分:0)
如果文件已经存在,可能默认情况下Gtk会进行验证,这样就不会直接覆盖它。