A Dangling Tk Entry
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Wed Mar 11 02:09:48 EDT 2009
On Mon, 09 Mar 2009 21:14:51 -0700, W. eWatson wrote:
>>> def Set_Enter_Data(self):
>>> sdict = {}
>>> sdict[ "ok" ] = False
>>> sdict[ "anumber" ] = self.anumber
>>> dialog = Enter_Data_Dialog( self.master, sdict ) <---
>>> returning
>>
>> That's not a call to the `body()` method so that ``return`` is
>> irrelevant here. Here an instance of `Enter_Data_Dialog` is created.
>> No ``return`` involved.
>>
>> BTW if this is really just a dialog to enter a number, the functions
>> `askinteger()` or `askfloat()` from the `tkSimpleDialog` module can be
>> used.
>
> What you are seeing here as an example, is a paired down version of the
> 2000 line program to focus on the particular problem at hand. The full
> code uses up to 20 variable of various types, via the dialog object. It
> uses them successfully to get the values the user has entered. How can
> it be irrelevant if it works?
The ``return`` in `body()` has nothing to do with the source line you
marked.
> The author thought this was the way to do it.
And he thought wrong because his `body()` method returns `None`. That
"works" but not the way it is intended.
> It's not my invention. It's no fluke. He does the same thing in
> another dialog that brings back about 6 values.
>
> def body(self,master):
> self.title("Box Settings")
>
> print "body from BSD"
> ...
>
> frame_delay = Entry( master,
> textvariable=self.frame_delay_var,
> width=10 ).grid( row=2, column=1, sticky=W )
> ...
> Entry( master,
> textvariable=self.untrigger_threshold_var, width=10
> ).grid( row=4, column=1, sticky=W )
> self.untrigger_threshold_var.set( "%d" %
> self.sdict["untrigger_threshold"] )
>
> return frame_delay
Then he did it consequently wrong. `frame_delay` is always `None` here
so the ``return`` is useless.
You asked what this code means and now you don't like the answer that
it's somewhat useless code!?
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list