Próbuję napisać bardzo prosty interfejs użytkownika w Pythonie za pomocą Tkinter. Wystąpił mały problem z klasą StringVar
. Problem polega na tym, że po uruchomieniu skryptu Pythona pojawia się błąd w linii, która inicjuje zmienną StringVar
. Napisałem program próbki z tej kwestii, które chciałbym, aby dostać pracę:Problem z "StringVar" w Python Program
from Tkinter import *
var = StringVar()
var.set('test');
Kiedy uruchamiam go przez pytona widzę ten błąd:
$ python test.py
Traceback (most recent call last):
File "test.py", line 3, in <module>
var = StringVar()
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 254, in __init__
Variable.__init__(self, master, value, name)
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 185, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
Exception AttributeError: "StringVar instance has no attribute '_tk'" in <bound method StringVar.__del__ of <Tkinter.StringVar instance at 0xb73cc80c>> ignored
Mam wrażenie, że jest to problem z moją instalacją w Pythonie, ale może być tak, że robię coś nie tak? Używam Pythona w wersji 2.6.5 na Ubuntu Linux, jeśli to robi różnicę.
Dlaczego trzeba zadzwonić 'Tk()' wyraźnie przed utworzeniem 'StringVar' obiektu:
Wystarczy to zrobić? – nbro