A Dangling Tk Entry
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Mon Mar 9 11:35:04 EDT 2009
On Mon, 09 Mar 2009 04:22:57 -0700, W. eWatson wrote:
> Marc 'BlackJack' Rintsch wrote:
>> On Sun, 08 Mar 2009 22:20:09 -0700, W. eWatson wrote:
>>
>>> You didn't answer my question why entry is necessary at all. The
>>> original author thought it was necessary to return entry. I'll give
>>> you a peek at a segment of the code I'm working with here:
>>>
>>> class Enter_Data_Dialog(tkSimpleDialog.Dialog):
>>>
>>> def __init__(self, parent, sdict):
>>> self.sdict = sdict
>>> tkSimpleDialog.Dialog.__init__(self, parent)
>>>
>>> def body(self,master):
>>> self.title("Set a Number Entry Dialog")
>>>
>>> Label( master, text="Number ").grid(row=0, sticky=W)
>>> self.anumberVar = StringVar()
>>> entry = Entry(master, width=10,
>>> textvariable=self.anumberVar).grid(row=0,
>> column=1)
>>> self.anumberVar.set( "%d" % self.sdict["anumber"] )
>>>
>>> return entry
>>
>> `entry` is unnecessary here. But that was not obvious from your
>> previous example, as you trimmed the code. Now it is clear that
>> `entry` is always `None` because that's what `grid()` returns.
>>
>> But according to the docs this method should return the widget, that
>> should get the focus, so maybe the author really wanted to return the
>> `Entry` instance here, instead of `None`.
>
> He's got to return something, because he uses it upon return, as here:
`entry` is always `None`, so it is the same as returning nothing because
every function has an implicit ``return None`` at the end.
> 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.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list