Marc 'BlackJack' Rintsch wrote:
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
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 author thought this was the way to do it. 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
BTW, forget the textvariable use. They are irrelevant.
--
W. eWatson
(121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
Obz Site: 39° 15' 7" N, 121° 2' 32" W, 2700 feet
Web Page: <www.speckledwithstars.net/>
--
http://mail.python.org/mailman/listinfo/python-list