字符串变量未设置初始值
String Variable not setting initial value
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()
你好,当我运行这个字符串变量的初始值没有出现,但是当我在输入框中输入时,我输入的文本出现在标签中。我不太确定为什么会发生这种情况,但我得到一个空标签,其中包含输入框。感谢您的任何帮助。
虽然我无法重现问题,但我重构了您的代码以通过 class(受 docs 中的代码段启发)初始化 tkinter 小部件,并且还增加了 window 大小,以便清楚地查看小部件。如果您的代码中还有任何其他内容按照@jasonharper 的建议调用多个 windows,您应该分享它。
import tkinter as tk
class Lay(tk.Tk):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.var=tk.StringVar()
self.var.set("OVERVIEW")
self.Widgets()
def Widgets(self):
self.displaylbl = tk.Label(self,textvariable=self.var)
self.displaylbl.grid(row=2,column=1,sticky=tk.W+tk.E+tk.N+tk.S)
self.entry = tk.Entry(self, textvariable = self.var)
self.entry.place(rely=1.0,relx=1.0,x=0,y=0,anchor=tk.SE)
app = Lay()
app.geometry("200x200")
app.mainloop()
输出:
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()
你好,当我运行这个字符串变量的初始值没有出现,但是当我在输入框中输入时,我输入的文本出现在标签中。我不太确定为什么会发生这种情况,但我得到一个空标签,其中包含输入框。感谢您的任何帮助。
虽然我无法重现问题,但我重构了您的代码以通过 class(受 docs 中的代码段启发)初始化 tkinter 小部件,并且还增加了 window 大小,以便清楚地查看小部件。如果您的代码中还有任何其他内容按照@jasonharper 的建议调用多个 windows,您应该分享它。
import tkinter as tk
class Lay(tk.Tk):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.var=tk.StringVar()
self.var.set("OVERVIEW")
self.Widgets()
def Widgets(self):
self.displaylbl = tk.Label(self,textvariable=self.var)
self.displaylbl.grid(row=2,column=1,sticky=tk.W+tk.E+tk.N+tk.S)
self.entry = tk.Entry(self, textvariable = self.var)
self.entry.place(rely=1.0,relx=1.0,x=0,y=0,anchor=tk.SE)
app = Lay()
app.geometry("200x200")
app.mainloop()
输出: