2012-04-29 11 views
0

私はwxpythonの新機能です。ユーザーが[OK]をクリックすると、イベントがトリガーされるダイアログボックスが表示されます。ダイアログボックスのボタンにイベントがどのようにバインドされているかはわかりません。私は通常のメソッド呼び出しを使用してみましたが、これは問題につながりました。アプリケーションを閉じると、プログラムは端末レベルで終了しません。 私はこのようなものを使ってみました。イベントをダイアログレスポンスにバインドする

デフOnclickMe(自己、イベント):

dlg = wx.MessageDialog(None, 'Is this right', 'MessageDialog', wx.YES_NO | wx.ICON_QUESTION) 
    result = dlg.ShowModal() 
    if result == wx.ID_YES: 
     self.IfYes() 
    dlg.Destroy() 
def IfYes(self): 
    dlg = wx.TextEntryDialog(None, "Wats ur opinion?", 'A Question', '') 
    if dlg.ShowModal() == wx.ID_OK: 
     response = dlg.GetValue() 

助けてください。

答えて

0

IfYes()を呼び出すと、2番目のダイアログが閉じられ/破棄されるまで、最初のダイアログが破棄されます。私はあなたがTextEntryDialogを破棄してもうまくいくと思います。実行は "if"ステートメントに戻り、それから脱落して、ダイアログを破壊するはずです。それでも問題が解決しない場合は、IfYes()メソッド呼び出しを条件文から外してみてください。このような何か作業をする必要があります:

yes_or_no = False 
if result == wx.ID_YES: 
    yes_or_no = True 
dlg.Destroy() 
if yes_or_no: 
    self.IfYes() 

ええ、私は上記のコードを使用してみましたし、また第二ダイアログボックスを破壊した

+0

...それはハックですが、それが動作するか私は興味があります。今は絶対にうまくいっています。どうもありがとうございます :) – sushma

関連する問題