[Tutor] Checking Entry Values in Tkinter Widgets
Alan Gauld
alan.gauld at btinternet.com
Tue Mar 17 22:13:13 CET 2009
"Wayne Watson" <sierra_mtnview at sbcglobal.net> wrote
> The program I'm modifying uses something of a primitive way
> to check the validity of values entered into widgets on a larger
> dialog.
You can bind events to the individual entry widgets to check values
when you navigate away from the widget. Or even on each keypress...
> ...Isn't this supposed to be done in the apply method for the
> dialog?
I believe so. That is where you would check the data
consisterncy/integrity
across all the widgets in the dialog. From your question it seems you
don't think the apply() is getting called?
> A typical data widget inside the set operations dialog class is:
>
> class OperationalSettingsDialog(tkSimpleDialog.Dialog):
>
> def __init__(self, parent, sdict):
> self.sdict = sdict
> tkSimpleDialog.Dialog.__init__(self, parent)
>
> def body(self,master):
> self.title("Operational Settings")
> ...
> # data widget
> Label( master, text="Max Hourly Event Rate: ").grid(row=5,
> sticky=W)
> self.rateVar = StringVar()
> Entry(master, width=10,
> textvariable=self.rateVar).grid(row=5, column=1)
> self.rateVar.set( "%s" % self.sdict["hourly_rate"] )
> ...
> def apply(self):
> self.sdict["ok"] = True
> #END of class
>
> Furthermore, doesn't the use of tkSimpleDialog.Dialog provide an OK
> and Cancel button, which upon use causes the the invocation of the
> apply method to depart?
Again I believe so but I'm no expert on SimpleDialog. I usually just
write
my own dialogs based on Toplevel... Just habit.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list