python - 创建 Tkinter 的 Canvas 绘图列表
问题描述
有没有办法附加到在 Tkinter 的画布上创建的列表图纸?我正在尝试这段代码
from tkinter import *
l = []
def f(c):
l.append(c.create_oval(10, 10, 200, 300, width=2, fill="red"))
print(l)
root = Tk()
c = Canvas(root)
c.pack(fill=BOTH)
b = Button(root, text="BOTON", command=lambda: f(c))
b.pack()
root.mainloop()
每次我按下按钮时,列表不会附加画布对象,而是附加一个整数,l
如下所示:
[1]
[1, 2]
[1, 2, 3]
...
[1, 2, 3, ..., n]
如何实现?
解决方案
在 a 上创建对象时tk.Canvas
,tk.Canvas
返回对象的 id (a python int
)。这唯一地引用了该对象。这些 id 永远不会被重用,并且可以在许多tk.Canvas
功能中使用,例如:
<tk.Canvas>.move(...)
<tk.Canvas>.moveto(...)
<tk.Canvas>.delete(...)
<tk.Canvas>.itemconfig(...)
当调用这些函数中的任何一个时,您应该将对象 id 作为第一个参数传递。
推荐阅读
- javascript - 我无法使用 TestCafe 获得预期的 URL
- mysql - MYSQL查询选择和分组
- excel - 登录后获取IE,url改变
- ios - watchOS 5 开发套件的 SIP 库
- javascript - 基于角色的重定向
- reactjs - 致命:身份验证失败
不要求凭据 - node.js - MSB6006:node.exe 在 VS2019 中以代码 1 退出
- python-3.x - 如何在windows上的anaconda中安装opencv
- mongodb - 规划器返回错误:无法在连接中找到 $geoNear 查询的索引
- javascript - 如何为我的打字稿类实例创建一个共享服务来与之交谈?