我正在为棋盘游戏制作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.但标签是错误的。
答案 0 :(得分:1)
在您打印2
之前,该数字9
就在那里。可能之前得分为12
或22
,然后它变为9
,并且您在9
之上打印了12
,9
被绘了超过1
,但2
仍然存在。修复它的一种方法是在渲染标签之前在该区域上绘制一个矩形,或者在分数之后渲染几个空格。但正确的方法可能是每次渲染分数时重复使用相同的标签,并更改其文本,而不是每次都创建新标签。