Getting contents of Text / Entry widgets
catlee at my-deja.com
catlee at my-deja.com
Wed Jul 7 11:52:57 EDT 1999
More information about the Python-list mailing list
Wed Jul 7 11:52:57 EDT 1999
- Previous message (by thread): Getting contents of Text / Entry widgets
- Next message (by thread): Getting contents of Text / Entry widgets
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <c75pv252spo.fsf at pc142.cosc.canterbury.ac.nz>, Timothy R Evans <tre17 at pc142.cosc.canterbury.ac.nz> wrote: > The class below does this, see the example at the bottom of the script > for how to use it. This example just prints the contents of the entry > widget. > > ============================================================== > #!/usr/bin/python > > from Tkinter import * > > class CallbackEntry(Entry): > '''Replacement of Entry widget. Set the "callback" attribute to > your function, which will be called whenever the entry widget > changes and will be passed the new contents of the widget''' > > def __init__(self, *args, **kw): > apply(Entry.__init__, (self,)+args, kw) > self.stringvar = StringVar(self) > self.stringvar.trace_variable('w', self.changed) > self.configure(textvariable=self.stringvar) > self.callback = None > > def changed(self, *args): > 'Note that the args given to this method are useless' > if self.callback != None: > self.callback(self.stringvar.get()) > Great! This works perfectly! Thanks for your help! I've come up with a replacement for the Text widget. The same method could be used with almost any widget, I imagine. This doesn't pass the text back to the callback function since I only want to know when the text changes, not necessarily what it is. from Tkinter import * class CallbackText(Text): '''Replacement of Text widget. Set the "callback" attribute to your function, which will be called whenever the text widget changes.''' def __init__(self,*args,**kw): apply(Tkinter.Text.__init__,(self,)+args,kw) self.bind("<Key>",self.active) self.callback=None def active(self,event): self.after_idle(self.idle) def idle(self): if self.callback != None: self.callback() Sent via Deja.com http://www.deja.com/ Share what you know. Learn what you don't.
- Previous message (by thread): Getting contents of Text / Entry widgets
- Next message (by thread): Getting contents of Text / Entry widgets
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list