【发布时间】:2016-11-24 09:18:16
【问题描述】:
这里是初学者,正在制作一个基本的 GUI,作为我在网上学习的教程的一部分,但他们都没有说明如何使用代码其他部分的输出来更新文本框。
我在网站上尝试了多个其他答案,包括一个使用 StringVar 的答案,这让我无处可去,另一个使用装饰器,其余的似乎超出了我的深度。
这是我的代码:
import tkinter as tk
import time
#Creating Root
root = tk.Tk()
#GUI TEMPLATE
frame =tk.Frame(root,
height = 100,
width = 400)
frame.pack()
v = StringVar()
colour = ["red","blue","green","white","yellow"]
labels = range(5)
#change number to change how many labels
for i in range(5):
l= tk.Label(root,
text = colour[i],
bg = colour[i])
l.place(x = 10 +i*70, y = 10, width=60, height=25)
T1 = tk.Text(root, height=2, width=40)
words = "Don't name your files after module names!"
T1.insert(tk.END, textvariable=v)
T1.place(x = 10, y= 40)
S = tk.Scrollbar(root)
S.config(command=T1.yview)
S.place(x = 340, y=40)
T1.config(yscrollcommand=S.set)
root.mainloop()
v.set("Something Else!")
现在,它应该输出的是一行彩色标签,它可以正常工作,以及一个带有滚动条的文本框,它应该立即更新为“Something Else!”,但它不能正常工作。
相反,我收到以下错误:
NameError:未定义名称“StringVar”
我知道这个错误意味着什么,只是在寻找适合我的解决方案时遇到了困难,并且不需要博士学位来理解。
我要问的是,是否有人可以给我一个可以解决这个问题的解决方案,并希望能解释一下!
提前致谢。
编辑: 所以在修复了语法错误之后,然后发现我正在尝试做的事情不起作用,我该怎么做呢?
我可以改用标签吗?或者还有其他更好的方法吗? 再次感谢!
【问题讨论】: