From: Kevin A. <ka...@us...> - 2007-06-27 01:35:02
|
Update of /cvsroot/pythoncard/PythonCard/samples/noresource In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13296 Added Files: autobutton.py Log Message: simple usage example of addmethod --- NEW FILE: autobutton.py --- #!/usr/bin/python """ __version__ = "$Revision: 1.1 $" __date__ = "$Date: 2007/06/27 01:35:02 $" """ from PythonCard import model rsrc = {'application':{'type':'Application', 'name':'Minimal', 'backgrounds': [ {'type':'Background', 'name':'bgMin', 'title':'Minimal PythonCard Application', 'size':(200, 100), 'components': [ ] # end components } # end background ] # end backgrounds } } class Minimal(model.Background): def on_initialize(self, event): self.components['field1'] = {'type':'TextField', 'name':'field1', 'position':(5,5), 'size':(150, -1), 'text':'Hello PythonCard'} self.mouseclick_factory("Button1") self.mouseclick_factory("Button2") def mouseclick_factory(self, name): def function(self, event): # changed to event.target.name to verify we're getting # the correct target when button is clicked print "You clicked '%s'." % event.target.name # func_name seems to be the magic attribute rather than # just setting func.name function.func_name = "on_%s_mouseClick" % name self.addMethod(function) self.components[name] = {'type':'Button', 'name':name, 'label':name, 'position':(5,5+int(name[-1:])*30), 'text':name} return function if __name__ == '__main__': app = model.Application(Minimal, None, rsrc) app.MainLoop() |