Nicola Musatti wrote in news:92dfc2fc-0677-43c0-b34f-4f240fa40205 @e4g2000hsg.googlegroups.com in comp.lang.python:
Note there is a wxpython mailinglist/newsgroup: news:gmane.comp.python.wxpython [snip] > problem lies in the fact that apparently ShowModal() does not return > when either the Yes or the No buttons are pressed. Curiously, if you > change the Yes and No buttons with the OK and Cancel ones that are > currently commented everything works as expected. This is because the wx.Dialog class has handlers for the wxID_OK and wxID_CANCEL button identifiers, IIRC in windows the MS supplied dialog procedure behaves this way. > > As the sbs_test_xrc.py file below is automatically generated by > wxPython 2.8.6.1's XRCed tool from a XRC file which in turn is > generated by wxFormBuilder (http://wxformbuilder.org/), I really cant > figure out to whom I should report this problem, assuming I'm not > missing some obvious mistake of mine, that is. > class MainFrame(sbs_test_xrc.xrcMainFrame): > def __init__(self, parent): > sbs_test_xrc.xrcMainFrame.__init__(self, parent) > self.button.Bind(wx.EVT_BUTTON, self.OnButton) First you can make the dialog a member, you are showing and hiding it so there is no need to create a new one every time OnButton is fired. self.dialog = sbs_test_xrc.xrcDialog(self) # now replace the defaults of ID_OK and ID_CANCEL # self.dialog.SetAffirmativeId( wxID_YES ) self.dialog.SetEscapeId( wxID_NO ) Alternativly you could derive from xrcDialog as you are with xrcMainFrame and do the above in the derived classes __init__. > def OnButton(self, event=None): > d = sbs_test_xrc.xrcDialog(self) > ## if d.ShowModal() == wx.ID_OK: > if d.ShowModal() == wx.ID_YES: > self.Close() > http://www.wxpython.org/docs/api/wx.Dialog-class.html Rob. -- http://www.victim-prime.dsl.pipex.com/ -- http://mail.python.org/mailman/listinfo/python-list