Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   _tkinter.TclError: can't set "PY_VAR0": invalid command name "-1210125972check" (http://www.velocityreviews.com/forums/t355014-_tkinter-tclerror-cant-set-py_var0-invalid-command-name-1210125972check.html)

Gregor Horvath 03-02-2006 03:32 PM

_tkinter.TclError: can't set "PY_VAR0": invalid command name "-1210125972check"
 
Hi,

I searched the web and docs but cannot figure out whats wrong with this
code:

#!/usr/bin/python

import Tkinter as Tk

class testtk(Tk.Frame):

def __init__(self):
self.root = Tk.Tk()
Tk.Frame.__init__(self,self.root)
self.frame = Tk.Frame(self.root)
self.var = Tk.StringVar()
self.var.trace_variable('w',self.check)
Tk.Entry(self.frame, textvariable = self.var).pack()
self.frame.pack()
Tk.mainloop()

def check():
pass

if __name__ == "__main__":
t = testtk()
t.var.set("TEST")

Result:

Traceback (most recent call last):
File "<stdin>", line 22, in ?
File "/usr/lib/python2.3/lib-tk/Tkinter.py", line 191, in set
return self._tk.globalsetvar(self._name, value)
_tkinter.TclError: can't set "PY_VAR0": invalid command name
"-1210125972check"


Any ideas, why I cant set the variable var?

--
Greg

Gregor Horvath 03-02-2006 05:55 PM

Re: _tkinter.TclError: can't set "PY_VAR0": invalid command name"-1210125972check"
 
Gregor Horvath schrieb:

> if __name__ == "__main__":
> t = testtk()
> t.var.set("TEST")
>
> Result:
>
> _tkinter.TclError: can't set "PY_VAR0": invalid command name
> "-1210125972check"
>
>
> Any ideas, why I cant set the variable var?


Ok. The problem is that the program enters the mainloop on t = testtk()
and t.var.set("TEST") is executed when the program ends.

But, what I want to do is to let another program create my tkinter GUI
via initiating my class through COM. Then the COM-Client should be able
to set values of the tkinter variables from "the outside".

How to do this?

Do I have to make my GUI program threaded ? like described here:

http://aspn.activestate.com/ASPN/Coo...n/Recipe/82965

The mainloop resides in one thread and the other thread provides the COM
object and queues the foreign COM method calls to the GUI thread?

Is there a simpler solution?

--
Greg


All times are GMT. The time now is 06:26 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.