我试图构建一个游戏,你可以在其中玩五行,当有人获胜时,我希望标签从“#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周前做了我的第一个代码。
答案 0 :(得分:0)
(如果self.inforad
放置在Frame子类实例self
中,则其master
应该是self
,而不是自己的主人。)
至于您的具体问题,请将Label(master, text = self.info)
更改为Label(self, textvariable = self.info)
。