2012-02-09 106 views
1

为什么这个wxpython代码给了我下面的错误?wxpython文件打开对话框

self.Bind(wx.EVT_MENU,self.onNewFile,self.New_File)

def onNewFile(self,evt): 

    wx.FileDialog(None,'Choose a file',os.getcwd(),"",wx.OPEN) 
    if dialog.ShowModal() == wx.ID_OK: 
     print dialog.GetPath() 
    dialog.Destroy() 

其他的代码来设置菜单栏和创建项目是有,但这个被执行时,我得到了以下错误:

Traceback (most recent call last): 
    File "C:\Python27\Front_End.py", line 52, in onNewFile 
    wx.FileDialog(None,'Choose a file',os.getcwd(),"",wx.OPEN) 
    File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 2430, in __init__ 
    _windows_.FileDialog_swiginit(self,_windows_.new_FileDialog(*args, **kwargs)) 
TypeError: String or Unicode type required 

这是什么意思?

回答

2

wx.FileDialog原型低于

__init__(self, parent, id, title, pos, size, style, name) 

你可能会错过一个参数。我还编辑了一下你的代码。

def onNewFile(self,evt): 

    dialog = wx.FileDialog(None,'Choose a file',os.getcwd(),"", "",wx.OPEN) 
    if dialog.ShowModal() == wx.ID_OK: 
     print dialog.GetPath() 
    dialog.Destroy()