我是python和tkinter的新手,并且一段时间以来我一直在寻找解决方案。
我正在创建一个数独板,并使用tkinter填充已知值。我想回去删除一些已知位置的数字,因为我不知道如何使用删除功能。
我的电路板的构建如下:
for i in range(10)
color = "blue" if i%3 ==0 else "gray"
thickness = 5 if i% 3 ==0 else 1
x0 = 10 + i* 5
y0 = 10
x1 = 10+ i * 5
y1 = 500 - 10
canvas.create_line(x0,y0,x1,y1, fill=color, width=thickness)
x0 = 10
y0 = 10 + i * 5
x1 = 500 - 10
y1 10 + i *5
canvas.create_line(x0,y0,x1,y1, fill=color, width=thickness)
我将数字添加到板上的功能如下:
def uploadBoard():
for i in range(9):
for j in range(9):
number = puzzleBoard[i][j]
if number != 0:
x = 10 + j * 5 + 5/2
y = 10 + i * 5 + 5/2
canvas.create_text(x,y, text=number)
puzzleBoard
是包含数字的数组的数组。
我想做的是创建一个函数,当puzzleBoard[i][j]
中的对应值更改为0时,该函数将删除特定(i,j)位置的数字。
答案 0 :(得分:2)
在画布上创建项目时,画布将返回一个标识符。您以后可以使用此标识符来修改或删除项目。您只需要保存此标识符。
示例:
首先,在创建项目时保存参考。首先创建一个空字典,然后使用元组(i,j)
作为键:
item = {}
for i in range(9):
for j in range(9):
...
item[(i,j)] = canvas.create_text(x,y, text=number)
接下来,使用您保存的商品ID删除该商品:
canvas.delete(item[(i,j)])