Hi, When I run this code and focus on choice it is raise a error. I close this message but it is come back again. I want to see only one time this message. How can i do this? What is error in my code ?
Note: I'm sorry for my English. I know it isn't good. #! -*- coding:utf-8 -*- import wx class MyPanel(wx.Panel): def __init__(self, parent, *args, **kwargs): wx.Panel.__init__(self, parent, *args, **kwargs) sizer = wx.BoxSizer(wx.HORIZONTAL) self.my_choice = wx.Choice(self, wx.NewId()) self.my_button = wx.Button(self, wx.NewId(), label = "Procces") self.my_button.SetFocus() sizer.AddMany([(self.my_ choice, 0, wx.ALL, 5), (self.my_button, 0, wx.ALL, 5)]) self.SetSizer(sizer) self.my_choice.Bind(wx.EVT_SET_FOCUS, self.my_choice_on_focus) self.my_button.Bind(wx.EVT_BUTTON, self.my_button_on_clicked) def my_choice_on_focus(self, evt): try: self.my_choice.Clear() print "Input some items in my_choice" raise RuntimeError except RuntimeError: dlg = wx.MessageDialog(self, "test EVT_SET_FOCUS", "Error", wx.ICON_ERROR|wx.OK ) dlg.ShowModal() dlg.Destroy() raise evt.Skip() def my_button_on_clicked(self, evt): print "Procces my choice value" evt.Skip() class MyApp(wx.App): def OnInit(self): frame = wx.Frame(None, title = "Test") panel = MyPanel(frame) frame.Show() self.SetTopWindow(frame) return True if __name__ == '__main__': app = MyApp(redirect = False) app.MainLoop()
_______________________________________________ ActivePython mailing list ActivePython@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython