0

複数の wx.FileDialog ステートメントを使用して、選択されているラジオ ボタンに基づいてユーザーが選択できるようにするファイル タイプを変更する場合、if および else ステートメントを使用するときに問題が発生します。したがって、問題は、ローカル変数が割り当て前に参照された FileDialog ステートメントに割り当てられた UnboundLocalError を取得し続けることです。これが私のコードです:

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 
4

1 に答える 1

2

opendialogが定義されていない状態で、2番目の「if」ステートメントの「else」状態に陥っていると思います。3つのうち2つだけでなく、すべての場合に何らかの方法で初期化されていることを確認する必要があります。そうしないと、最後の「if」ステートメントが失敗します。したがって、必ず追加してください

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

2番目の「if」ステートメントの最後まで。すべての場合に機能します。

于 2012-05-14T13:19:11.993 に答える