此时我有点失落。如果有人有空闲时间杀死,请看看这个并提供建议。已经尝试了一段时间来解决这个问题。 单击鼠标后,我无法更新磁贴中的数字。发布下面的整个代码,因为它几乎是相互关联的。试图缩小错误但我不是百分之百积极因为我刚开始学习tkinter。我可以通过将2-D列表更改为画布问题的新create_text方法来更新第一个方块,这是因为它保留了所有以前的数字和id必须为整个9x9网格执行此操作(这是最后一个在handle_clicks中的else语句之前的行) 必须有一种更简单的方法来更新数字吗?
def handle_clicks(self, event):
DX, DY = 100, 100
xclick = self.canvas.canvasx(event.x)
yclick = self.canvas.canvasy(event.y)
if (xclick > BORDER_WIDTH and xclick < BORDER_WIDTH + DX and
yclick > BORDER_WIDTH and yclick < BORDER_WIDTH + DX):
if self.final_list[0][0] < str(9):
val = self.final_list[0][0]
val = int(val)
val += 1
self.final_list[0][0] = val
new_val = self.final_list[0][0]
new_val = str(new_val)
self.final_list[0][0] = new_val
self.id_list[0][0] = self.canvas.create_text(xclick,
yclick,
fill = 'yellow',
text = '%s' %
new_val)
print(self.id_list)
else:
self.seed_value[0][0] -= 1
答案 0 :(得分:1)
必须有一种更简单的方法来更新数字吗?
可以调用Canvas.itemconfigure
来配置画布上文本对象的文本。在您的情况下,这将是:
self.canvas.itemconfigure(self.id_list[0][1], text=new_val)