Looking for a General Method to Configure Tkinter Widgets

W. eWatson notvalid2 at sbcglobal.net
Wed Mar 4 03:25:03 CET 2009

W. eWatson wrote:
> odeits wrote:
>> On Mar 2, 7:14 am, "W. eWatson" <notval... at sbcglobal.net> wrote:
>>> I'm modifying a Tkinter Python program that uses hard coded initial 
>>> values
>>> for several widgets. For example, latitude = 40. My plan is to put 
>>> the names
>>> and values for configuration purposes into a file. For example, a pseudo
>>> statement like the one just given. ConfigObj provides a mechanism for 
>>> it.
>>> I am only at an early stage of learning Tkinter, but it looks like a 
>>> hang up
>>> is in the use of control variables passed between widgets and 
>>> non-Tkinter
>>> objects that setup up the widget and retrieve the changed values. 
>>> Roughly,
>>> the main loop contains code like self.longitude = 40. Non-Tkinter 
>>> objects
>>> set up the parameters to the widgets, and when a widget* is complete the
>>> setup program resets the main loop globals. As I see it, it looks like
>>> IntVar, etc. used must be hard coded, as in the original program, to
>>> preserve types like boolean, strings, integers, floats, etc. It's either
>>> that or use of eval or some like function. Comments?
>>> * For example, in one setup program, I see code like this after its 
>>> call to
>>> a dialog returns:
>>>          try:
>>>              s = dialog.stopVar.get()
>>>              d = [ int(x) for x in s.split(":") ]
>>>              self.stop_time = datetime.time(d[0],d[1],d[2])
>>> stop_time is a string like "10:30:15".
>>> -- 
>>>                                 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/>
>> I am sorry, I am a bit confused. Is your question how to preserve the
>> value and/or type of the data in the config file? Or are you having
>> trouble getting the values from the file to the widget?
> I'm probably confused too. :-) Let's try this. In
>     s=dialog.stopVar.get()
> I'd like to eliminate the statement and replace it with something like:
>     s="dialog." + "stopV.get()"
>         )and execute that--I'm aware of the exec operation--problems)
> where StopV is a string name taken from the config file. That is, in the 
> config file there would be something like:
> stop_time = 18:00:00, stopV.
> Initially, when starting the program, reading that line would create a 
> self.stop_time variable with the value 18:00:00 (string). To communicate 
> with the dialog widget where the user enters a new value, I need to use 
> control variables. but ones that are not in the code itself. Instead, I 
> would like to manufacture them from what I see in the config file.
I've been told that there may be another way to communicate with Tkinter 
than control variables. I'm not quite sure what, but will probably know 
tomorrow. I think I will discontinue this thread, and re-post if necessary.

                                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/>

More information about the Python-list mailing list