[EMAIL PROTECTED] wrote: > Hello > > I'm using wxPython to consruct a GUI and want to change a button label > and event handler to change after the button have been pressed. The > only thing I can think of is a global variable that contrls the state > of the program and constructs the button in accordance to the defined > state. Is there a better solution to this problem? > It would be difficult to think of a worse one! ;-)
Since the button is probably in some sort of window, you should at least be saving the state as an instance variable of the window. The event handler should start with an "if" statement that calls one or other of the routines you have in mind depending on state. Here's a button event-handlerI use in a time recording program: def OnPauseRestart(self, event): """Stops/restarts the clock: allows for non-recordable activities.""" if self.Running: self.stopTimer() else: self.startTimer() def startTimer(self): """Starts the timer and returns the time to black.""" if not self.currentTask: msg("Please select a task before starting the timer", caption="No current task") return self.timer.Start(1000) self.Time().SetForegroundColour(wx.BLACK) self.Time().Refresh() self.Pause().SetLabel("&Pause") self.Running = 1 def stopTimer(self): """Stops the timer and sets the time red - you are not chargeable!""" self.timer.Stop() self.Time().SetForegroundColour(wx.RED) self.Time().Refresh() self.Pause().SetLabel("&Resume") self.Running = 0 Hope this helps. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden --------------- Asciimercial ------------------ Get on the web: Blog, lens and tag the Internet Many services currently offer free registration ----------- Thank You for Reading ------------- -- http://mail.python.org/mailman/listinfo/python-list