/ Published in: Python
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
import wx, thread, time def EVT_RESULT(win,func): win.Connect(-1,-1,111,func) class RESULT(wx.PyEvent): def __init__(self, data): wx.PyEvent.__init__(self) self.SetEventType(111) self.data = data class Main_Frame(wx.Frame): def __init__(self, parent=None, id=-1, title='Example PostEvent...'): self.ID_S = wx.NewId() self.ID_ST = wx.NewId() wx.Frame.__init__(self, parent, id, title) self.CenterOnScreen() self.Show() self._panel = wx.Panel(parent=self, id=-1) self._bu = wx.Button(parent=self._panel, id=self.ID_S, label='OK', size=(100, 100)) self.Bind(wx.EVT_BUTTON, self.OnStart, id=self.ID_S) self._bo = wx.Button(parent=self._panel, id=self.ID_ST, label='KO',pos=(0, 200), size=(100, 100)) self.Bind(wx.EVT_BUTTON, self.OnStop, id=self.ID_ST) EVT_RESULT(self, self.OnR) self.CreateStatusBar() def OnR(self, event): self.SetStatusText(str(event.data)) def OnStart(self, evt): thread.start_new_thread(self.avvia, (self,)) def OnStop(self, evt): print 'Cliccato....' def avvia(self, n): for i in range(10): time.sleep(1) wx.PostEvent(n, RESULT(i)) class Main_App(wx.App): def OnInit(self): self._main_frame = Main_Frame() self.SetTopWindow(self._main_frame) return True if __name__ == '__main__': main_app = Main_App() main_app.MainLoop()