在类中的tkinter中更改标签? STRINGVAR()?

时间:2015-12-07 21:59:39

标签: python-2.7 tkinter

我试图构建一个游戏,你可以在其中玩五行,当有人获胜时,我希望标签从“#34”变为“游戏正在进行中”#34;到"玩家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)

对于初学者来说,这根本不起作用,它打印出PY_VAR0。我的计划是定义一种在游戏中调用它的方法,比如

 def disp(self, string):

    self.info.set(string)
    return self.info

这根本不起作用。有人可以帮我弄这个吗?我对编程很陌生,在3周前做了我的第一个代码。

1 个答案:

答案 0 :(得分:0)

(如果self.inforad放置在Frame子类实例self中,则其master应该是self,而不是自己的主人。)

至于您的具体问题,请将Label(master, text = self.info)更改为Label(self, textvariable = self.info)