Python tkinter标签正在为字符串添加一个额外的数字

时间:2015-03-14 06:13:40

标签: python tkinter

我正在为棋盘游戏制作GUI。我的游戏逻辑计算黑色和白色两种颜色并返回金额。在GUI中,我使用2对标签来显示信息。

self._white_score_label = tkinter.Label(
            master = self._info_frame, text = 'White:', font = default_font)

        self._white_score_label.grid(
            row = 0, column = 0, padx = 0, pady = 10,
            sticky = tkinter.E)

        self._white_score_num = tkinter.Label(
            master = self._info_frame, text = str(self._white_count), font = default_font)

        self._white_score_num.grid(
            row = 0, column = 1, padx = 0, pady = 10, sticky = tkinter.W) 

        self._black_score_label = tkinter.Label(
            master = self._info_frame, text = 'Black:', font = default_font)

        self._black_score_label.grid(
            row = 1, column = 0, padx = 0, pady = 10, sticky = tkinter.E)


        self._black_score_num = tkinter.Label(
            master = self._info_frame, text = str(self._black_count), font = default_font)

        self._black_score_num.grid(
            row = 1, column = 1, padx = 0, pady = 10, sticky = tkinter.W)

问题是,当一个计数具有两位数字符串而另一个一位数字符串时,则一位数字符串会添加一个随机数。 HERE是截图。 shell显示计数函数是正确的,显示9和16.但标签是错误的。

1 个答案:

答案 0 :(得分:1)

在您打印2之前,该数字9就在那里。可能之前得分为1222,然后它变为9,并且您在9之上打印了129被绘了超过1,但2仍然存在。修复它的一种方法是在渲染标签之前在该区域上绘制一个矩形,或者在分数之后渲染几个空格。但正确的方法可能是每次渲染分数时重复使用相同的标签,并更改其文本,而不是每次都创建新标签。