【发布时间】:2020-02-29 18:26:52
【问题描述】:
class Lay():
def __init__(self):
root=Tk()
root.configure(background="black")
var=StringVar()
var.set("OVERVIEW")
Label(root,textvariable=var).grid(row=1,column=1,sticky=W+E+N+S)
Entry(root, textvariable = var).place(rely=1.0,relx=1.0,x=0,y=0,anchor=SE)
root.mainloop()
你好,当我运行这个时,字符串变量的初始值没有出现,但是当我在输入框中输入时,我输入的文本出现在标签中。我不太确定为什么会发生这种情况,但我得到一个空标签,带有输入框。感谢您的任何帮助。
【问题讨论】:
-
我无法重现您的第一个问题 - 我的设备上的标签和条目文本已更改。您的第二个问题是因为您使用的是相同的
StringVar,因此更新Entry中的var会更新您的Label中的var... -
这显然不是您的完整代码 - 没有任何东西会调用
Lay(),因此不会发生任何事情。您的实际代码中的其他内容可能会导致问题 - 我怀疑这是对Tk()的另一个调用,这往往会导致 Vars 出现问题(以及许多其他问题)。如果您想要多个窗口,则必须在第一个窗口之后使用Toplevel()而不是所有窗口。 -
@jasonharper 是的,问题是对 Tk() 的另一个调用,我以为我已经处理过了,我没有发布其余代码,因为我不想向所有人发送垃圾代码并告诉你修复它。非常感谢您的帮助!
标签: python tkinter tkinter-entry