更新数独拼图的元素

时间:2015-01-05 09:21:25

标签: list class inheritance tkinter sudoku

此时我有点失落。如果有人有空闲时间杀死,请看看这个并提供建议。已经尝试了一段时间来解决这个问题。 单击鼠标后,我无法更新磁贴中的数字。发布下面的整个代码,因为它几乎是相互关联的。试图缩小错误但我不是百分之百积极因为我刚开始学习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

完整代码:http://pastebin.com/2FwaMrdd

1 个答案:

答案 0 :(得分:1)

  

必须有一种更简单的方法来更新数字吗?

可以调用Canvas.itemconfigure来配置画布上文本对象的文本。在您的情况下,这将是:

self.canvas.itemconfigure(self.id_list[0][1], text=new_val)