Tkinter: Как вы размещаете текстовое поле, которое вы можете обновить по своему усмотрению? - PullRequest
1 голос
/ 08 августа 2011

Я хочу иметь возможность манипулировать целым числом, которое будет отображаться в режиме реального времени в окне Tk.

Я попытался:

xp = StringVar()
Label(master, textvariable=xp).pack()
xp.set(0)

, а затем попытался:

xp.set(xp+1)

Но в этой строке произошел серьезный сбой с сообщением:

Exception in Tkinter callback
File "/usr/lib/.../Tkinter.py", line 1413, in __call__
  return self.func(*args)
File "rpg.py", line 26, in fight
  xp.set(xp+1)
NameError: global name 'xp' is not defined

Я хочу иметь возможность увеличить значение "xp", и оно отображается в реальномвремя в окне.Я также хочу иметь возможность манипулировать «xp» как целое число с умножением и показателями степени и тому подобным.

Так что, если вы можете указать, что я делаю неправильно, я был бы рад.

1 Ответ

3 голосов
/ 08 августа 2011

Мне кажется, что область действия переменной xp в первом фрагменте не включает второй фрагмент.Это означает, что это действительно разные переменные (которые имеют очень похожее имя), и поэтому второй фрагмент запускается без дескриптора доступного StringVar, что не сработает.

...