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

Reply via email to