Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Interaction between TclTk editor with Python code

Reply
Thread Tools

Interaction between TclTk editor with Python code

 
 
ab
Guest
Posts: n/a
 
      05-17-2005
Hi,

I have an editor(front end) that is written in Tcl/Tk.
It has a menu bar, menu buttons, edit boxes, listboxes & comboboxes.
I am invoking this editor from an application that is written in
Python.
all the necessary processing is done in Python and displaying is done
by the Tcl/Tk code.

Now if I make some changes in the GUI, say I change some value in the
editbox or set some value in the list box and click on save in the GUI,
how can I read the changed values from Python?
I mean, how can I get the value changed in the GUI into some Python
variable?

Thanks,
Ab.

 
Reply With Quote
 
 
 
 
Jeff Epler
Guest
Posts: n/a
 
      05-17-2005
One way to get a handle on some Tcl variables from Python is to create
Tkinter.Variable instances with the names of the existing Tcl variables
(normally, the variable names are chosen arbitrarily). Once you've done
this, you can do things like add variable traces (the trace_variable
method) on the Python side. One thing to be aware of is that the Python
object's __del__ will unset the variable on the Tcl side. Also, this
code sets an initial value for the variable which may or may not be
appropriate in your application.

The code below was ripped from a larger application, so it may or may
not work without modification.

Jeff

# This code is in the public domain
from Tkinter import *
def makevar(master, name, klass, *default):
self = newinstance(klass)
self._master = master
self._tk = master.tk
self._name = name
if default:
self.set(default[0])
else:
self.set(self._default)
return self

def makebool(master, name, *default):
return makevar(master, name, Tkinter.BooleanVar, *default)
def makeint(master, name, *default):
return makevar(master, name, Tkinter.IntVar, *default)
def makefloat(master, name, *default):
return makevar(master, name, Tkinter.DoubleVar, *default)
def makestring(master, name, *default):
return makevar(master, name, Tkinter.StringVar, *default)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFCidvgJd01MZaTXX0RAn1gAJ9xhcjNEG/L79jYQUQQIGVPAQW16gCfUNeS
vbV4CmyXWgzLgs/bH3upYkU=
=WBcH
-----END PGP SIGNATURE-----

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Finding tcltk when building Python on Windows Chris Python 0 09-11-2008 08:46 PM
TCLTK didn't work with do ... end ?? Daniel Bovensiepen [bovi] Ruby 2 04-21-2004 07:43 PM
cygwin tcltk 8.3 Grzegorz Dostatni Python 1 12-02-2003 12:54 PM
IDEStudio (Linux Python cvs-version TclTk 8.4.3 tix-8.1.4) Helmut Jarausch Python 0 07-17-2003 04:28 PM
Building ruby/tcltk on Mac OSX Mike Ruby 0 07-12-2003 07:42 PM



Advertisments