0

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

def 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()

助けてください。

4

1 に答える 1

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()

ええ、それはハックですが、それがうまくいくかどうか私はただ興味があります...

于 2012-04-30T13:25:36.393 に答える