【发布时间】:2015-11-02 11:29:31
【问题描述】:
在 tkinter 窗口上,我有一个带有网格的设置,每当您单击网格上的一个正方形时,该正方形就会改变颜色。如果再次点击同一个方块,颜色会变回来。
不过,为此,我只是在同一个正方形上使用相同的 2 种颜色进行绘画,在经过足够多的点击后创建了数千张图像。
为了识别每个网格方块,我使用网格方块的左上角坐标。我尝试通过将两个坐标 (x, y) 的元组传递给 create_rectangle 函数,然后调用 canvas.delete(coords) 来使用 tkinter 标签。但是,这似乎根本不起作用。好像用的时候
canvas.create_rectangle(whatever, tags=coords)
无论我制作的坐标是什么数据类型,或者我对它们做什么,tkinter 似乎对它们做了一些奇怪的事情,使我无法用任何变化来删除它们
canvas.delete(coords)
有没有人可以解决这个问题?我一直在搜索最小的 tkinter 文档。 我想要的只是删除网格上的彩色方块,而不是在上面重新绘制。
这里有一些代码来说明尝试使用相同原理删除正方形:
from tkinter import *
master = Tk()
canvas_width = 850
canvas_height = 650
tCanvas = Canvas(master,
width=canvas_width,
height=canvas_height)
coordinates = (562, 130)
tkinterObject = tCanvas.create_rectangle(0, 0, 100, 100, fill='black', tags=(coordinates))
tCanvas.delete(coordinates)
tCanvas.pack()
mainloop()
在上面的例子中,正方形没有被删除。
【问题讨论】:
-
查看effbot.org/tkinterbook/…“模式”下的示例以及它如何使用 itemconfig 和 fill= 更改背景颜色。
-
请创建一个MCVE。