我试图从Entry中提取一个整数,并将其存储在python变量中,以便在各种函数中使用。现在我遇到的问题是范围问题,其中IntVar在一个类中声明,python变量在class A中的另一个方法中声明。调用IntVar将其存储在class A中的一个变量中。在
现在我明白了为什么IntVar不是全局的。但是当我试图将IntVar放在任何包含gui的类的但的地方时,它会返回一个__init__错误并引用tkinter模块中的行。在
我也尝试过将函数移到UI类中,但这也很难看,因为这样我就无法从__init__方法之外调用它们,而将它们放在其他地方会导致NameError: name 'xxx' is not defined。在
下面是一个快速而肮脏的模型来说明这个问题:from tkinter import *
class SampleObj(object):
def __init__(self, pyvar):
self.pyvar = 0
def SampleFunc(self):
self.pyvar = tkvar.get()
self.pyvar += 1
tkvar.set(self.pyvar)
Test = SampleObj(0)
class MainGui:
def __init__(self, master):
self.master = master
self.master.title("I'm a test Gui!")
tkvar = IntVar()
mFrame = Frame(master)
mFrame.pack()</