gpt4 book ai didi

python - 从 tk Canvas 保存对象

转载 作者:太空宇宙 更新时间:2023-11-03 21:30:07 26 4
gpt4 key购买 nike

我正在尝试在我为冒泡/气球绘图所做的程序中创建一个保存功能。我唯一无法开始工作的是保存“工作副本”。就像图纸进行修订更改一样,您无需重做所有工作。只需加载工作副本,然后添加/删除/重新排列气泡。

我正在使用 tkinter 和 canvas。并为气泡创建椭圆形和文本。但我想不出任何保存椭圆/文本对象信息的好方法。我试图 pickle 整个 Canvas ,但经过一番谷歌搜索后似乎不起作用。并且在创建时对每个对象进行pickle似乎只保存对象id。 1、2 等。这也不起作用,因为一些气泡将被移动并接收新的坐标。它们也可能有不同的颜色、尺寸等。

在我的下一个方法中,我正在考虑将整个“can.create_oval( x1, y1, x2, y2, fill = fillC, outli....”作为字符串保存到txt中,并使函数重新创建带有 eval() 的 a

有人对如何解决这个问题有什么好的建议吗?

最佳答案

没有内置的方法来保存和恢复 Canvas 。但是, Canvas 具有可用于获取有关 Canvas 上项目的所有信息的方法。您可以使用这些方法将此信息保存到文件中,然后读回该文件并重新创建对象。

  • find_all - 将返回 Canvas 上所有对象的对象 ID 的有序列表
  • type - 将以字符串形式返回对象的类型(“矩形”、“圆形”、“文本”等)
  • itemconfig - 返回包含对象所有配置值的字典。字典中的值是一个值列表,其中包括索引 3 处选项的默认值和索引 4 处的当前值。您可以使用它来仅保存已从默认值显式更改的选项值。<
  • gettags - 返回与对象关联的标签列表

关于python - 从 tk Canvas 保存对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53571619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com