在课堂上设置IntVar' __init __(self)并在该类之外调用IntVar变量

时间:2016-12-29 16:23:18

标签: python python-3.x tkinter

我想创建一个类,它定义了许多设置为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

1 个答案:

答案 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())