Python 2.7 在类内更改tkinter中的标签?StringVar()?

Python 2.7 在类内更改tkinter中的标签?StringVar()?,python-2.7,tkinter,Python 2.7,Tkinter,我正在尝试构建一个游戏,你可以连续玩五个,当有人赢了,我希望标签从“游戏正在进行”改为“玩家1赢了”,这就是我被卡住的地方 我构建这一切的方式是这样的。我有一个类用于图形(一个框架),我有一个类用于所有按钮,您可以单击这些按钮将其设置为“X”或“O”。然后我有最后一个类,检查网格是否有五个值在一行中,并且这个类在每次成功单击后运行 标签当然是在Frame类中设置的,首先我这样做是为了确保我能看到一些东西 def __init__(self, master = None, rows = 10, c

我正在尝试构建一个游戏,你可以连续玩五个,当有人赢了,我希望标签从“游戏正在进行”改为“玩家1赢了”,这就是我被卡住的地方

我构建这一切的方式是这样的。我有一个类用于图形(一个框架),我有一个类用于所有按钮,您可以单击这些按钮将其设置为“X”或“O”。然后我有最后一个类,检查网格是否有五个值在一行中,并且这个类在每次成功单击后运行

标签当然是在Frame类中设置的,首先我这样做是为了确保我能看到一些东西

def __init__(self, master = None, rows = 10, cols = 10):
    Frame.__init__(self, master)
    Some other selfs....
    self.inforad = Label(master, text = "Game is going on")
这个打印得很好,就像我想要的一样。现在,我已经尝试了几个小时,当有人赢了,我只是不能让它工作时,作出这种改变!我最后一次尝试是使用StringVar(),我就是这样做的

    self.info = StringVar()
    self.info.set("Game is going on")
    self.inforad = Label(master, text = self.info)
 def disp(self, string):

    self.info.set(string)
    return self.info
对于初学者来说,这根本不起作用,它会打印出PY_VAR0。我的计划是定义一个在游戏中调用它的方法,就像这样

    self.info = StringVar()
    self.info.set("Game is going on")
    self.inforad = Label(master, text = self.info)
 def disp(self, string):

    self.info.set(string)
    return self.info
这根本不起作用。有人能帮我吗?我对编程非常陌生,大约3周前我写了第一个代码。

(如果
self.inforad
放在框架子类实例
self
中,它的
master
应该是
self
,而不是self的master。)


至于您的具体问题,请将
Label(master,text=self.info)
更改为
Label(self,textvariable=self.info)
(如果self.inforad放在框架子类实例self中,那么它的主类应该是self,而不是self的主类。)您能解释一下吗?现在它正在工作,我必须将文本更改为文本变量!:)master thingy似乎是对的,如果我将其更改为self,它将创建一个全新的选项卡,并将一切都搞糟,可能是代码中的其他部分您没有意识到:)无论如何。谢谢!:)