2012-05-13 11 views
0

ifおよびelseステートメントを使用して複数のwx.FileDialogステートメントを使用してファイルタイプを変更しているときに何か問題があります。ラジオボタンが選択されています。だから問題は、割り当て前に参照されているFileDialogステートメントに割り当てられているローカル変数がUnboundLocalErrorを取得し続けることです。ここに私のコードです:wxPython FileDialogのトラブルシューティングifおよびelseステートメント

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

"elif self.radioButton2 ..."を意味しますか? – acattle

+0

@acattle、私はそれを意味しませんでしたが、私は持っている必要があります。私はそれも私の問題を解決しただろうと思う。それを言ってくれてありがとう。 – wilbev

答えて

2

私はopenDialogのが今までに定義されることなく、あなたが第二の「if」文の「他」の状態に陥っていることを推測しています。 3つのうちの2つだけでなく、どのように初期化されているかを確認する必要があります。それ以外の場合、最後の "if"文は失敗します。したがって、2番目のif文の末尾に

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

を追加すると、すべての場合に機能します。

+0

答えに感謝します。 2番目の 'if'ステートメントには既にwx.FileDialogがあります。あなたは "else"ステートメントを意味しましたか?問題は、wx.FileDialogではなくelseにMessageDialogを表示したいということです。たぶんあなたは、opendialog.ShowModal ifステートメントを意味ですか?そのファイルパス情報を取得するコードを追加する必要があります。私はその最後のif文(opendialog.ShowModal()を実行しようとしましたが、何らかの理由でradiobutton1を選択したときにelse文がまだ実行されています)。 – wilbev

+0

2番目のif文は2番目の部分そうでない場合)最初の "if"と2番目の "if"の最初の部分が決して実行されない場合、opendialogが定義されていないため、3番目の "if"が失敗します –

+0

@acattleが述べたように、 ifとelif文の両方にif opendialog.ShowModal()を追加した場合にのみ問題を解決するようだ – wilbev

関連する問題