正在保存来自 tk canvas 的对象
Saving objects from tk canvas
我正在尝试在我为 bubbling/ballooning 绘图所做的程序中创建一个保存功能。我唯一无法开始工作的是保存 "work copy"。就像绘图得到修订更改一样,您不需要重做所有工作。只需加载工作副本,然后 add/remove/re-arrage 个气泡。
我正在使用 tkinter 和 canvas。并为气泡创建椭圆和文本。但我想不出任何保存 oval/text 对象信息的好方法。
我试图腌制整个 canvas,但在谷歌搜索后似乎无法正常工作。
并且在创建时腌制每个对象似乎只保存对象 ID。 1、2 等。这也行不通,因为一些气泡会移动并接收新坐标。它们也可能有不同的颜色、尺寸等。
在我的下一个方法中,我正在考虑将整个 "can.create_oval( x1, y1, x2, y2, fill = fillC, outli...." 作为字符串保存到 txt 中,并使用 eval()
重新创建函数
有人对如何解决这个问题有什么好的建议吗?
没有内置的方法来保存和恢复 canvas。但是,canvas 有一些方法可以用来获取有关 canvas 上项目的所有信息。您可以使用这些方法将此信息保存到文件中,然后读回此文件并重新创建对象。
find_all
- return canvas 上所有对象的对象 ID 的有序列表
type
- 将 return 对象的类型作为字符串("rectangle"、"circle"、"text" 等)
itemconfig
- returns 是包含对象所有配置值的字典。字典中的值是一个值列表,其中包括索引 3 处选项的默认值和索引 4 处的当前值。您可以使用它来仅保存已从默认值显式更改的选项值。
gettags
- returns 与对象关联的标签列表
我正在尝试在我为 bubbling/ballooning 绘图所做的程序中创建一个保存功能。我唯一无法开始工作的是保存 "work copy"。就像绘图得到修订更改一样,您不需要重做所有工作。只需加载工作副本,然后 add/remove/re-arrage 个气泡。
我正在使用 tkinter 和 canvas。并为气泡创建椭圆和文本。但我想不出任何保存 oval/text 对象信息的好方法。 我试图腌制整个 canvas,但在谷歌搜索后似乎无法正常工作。 并且在创建时腌制每个对象似乎只保存对象 ID。 1、2 等。这也行不通,因为一些气泡会移动并接收新坐标。它们也可能有不同的颜色、尺寸等。
在我的下一个方法中,我正在考虑将整个 "can.create_oval( x1, y1, x2, y2, fill = fillC, outli...." 作为字符串保存到 txt 中,并使用 eval()
重新创建函数有人对如何解决这个问题有什么好的建议吗?
没有内置的方法来保存和恢复 canvas。但是,canvas 有一些方法可以用来获取有关 canvas 上项目的所有信息。您可以使用这些方法将此信息保存到文件中,然后读回此文件并重新创建对象。
find_all
- return canvas 上所有对象的对象 ID 的有序列表
type
- 将 return 对象的类型作为字符串("rectangle"、"circle"、"text" 等)itemconfig
- returns 是包含对象所有配置值的字典。字典中的值是一个值列表,其中包括索引 3 处选项的默认值和索引 4 处的当前值。您可以使用它来仅保存已从默认值显式更改的选项值。gettags
- returns 与对象关联的标签列表