我想创建一个类,它定义了许多设置为IntVar()
的变量,稍后给它们一个值并在Entry
小部件中调用它们。
现在我正在尝试:
import tkinter as tk
class ESCP2_Client(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
tk.Entry(textvariable=SetVars.var1).pack()
class SetVars(tk.Tk):
def __init__(self):
self.var1 = tk.IntVar()
app = ESCP2_Client()
vars = SetVars()
print(vars.var1)
app.mainloop()
但这(显然?)不起作用。但我无法在__init__
函数之前设置变量,因为IntVar()
需要Tk()
根。
如何回忆其他类中定义的IntVar
?
答案 0 :(得分:1)
您需要创建SetVars
的实例,然后在需要访问变量的任何位置使用该实例。例如,您可以将其创建为客户端__init__
的一部分:
class ESCP2_Client(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.vars = SetVars()
tk.Entry(textvariable=self.vars.var1).pack()
代码的其他部分可以通过客户端访问它们:
print("var1:", app.vars.var1.get())