使用wxPython FileDialog if和else语句引用问题

时间:2012-05-13 21:26:52

标签: python wxpython

我在使用if和else语句时遇到一些麻烦,我正在使用多个wx.FileDialog语句来更改文件类型我允许用户根据选择的单选按钮进行选择。所以问题是我一直得到一个UnboundLocalError,我的本地变量分配给在赋值之前引用的FileDialog语句。这是我的代码:

def OnOpen(self, e):
if self.radioButton1.GetValue():
   opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.txt", wx.MULTIPLE)
if self.radioButton2.GetValue():
   opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.csv", wx.MULTIPLE)
else:
   selectdialog = wx.MessageDialog(self,"Select process", "Warn", wx.OK)
   selectdialog.ShowModal()
   selectdialog.Destroy()
if opendialog.ShowModal() == wx.ID_OK:
   #More code to file path information 

1 个答案:

答案 0 :(得分:2)

我猜你在没有定义opendialog的情况下陷入第二个“if”语句的“else”状态。你需要确保它在每种情况下以某种方式初始化,而不仅仅是三种中的两种。否则最后一个“if”语句将失败。所以一定要添加

opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.csv", wx.MULTIPLE)

到第二个“if”语句的结尾,它将适用于所有情况。