Changing button preferences after beeing pressed

Steve Holden steve at holdenweb.com
Thu Aug 16 07:36:24 EDT 2007


thomas.lidebrandt at gmail.com 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 -------------




More information about the Python-list mailing list