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

Reply via email to