python - 尝试创建同一类的多个实例时,无法 pickle _tkinter.tkapp 对象错误

标签 python tkinter pickle

由于这个问题,我变得非常沮丧。我以前有过它并修复了它,但是当我更改代码中的某些内容时它又回来了。准确地说,当我按下按钮时,我试图创建一个类的多个实例。我正在使用 python 3.6 和 tkinter。当我第一次编写我的类(class)时,我使用矩形(通过使用 create_rectangle 方法创建)进行视觉表示。当我的类(class)按照我想要的方式表现后,我想使用照片而不是矩形出现在我的 Canvas 上。正如标题所示,我的主要错误是“无法pickle _tkinter.tkapp对象”,在此之前有很多关于深度复制的错误。这是完整的错误https://pastebin.com/nAQifmnA

在使用图像之前,此修复有效 Can't pickle _tkinter.tkapp objects

我忘了提及,对于我正在使用 PhotoImage 类的图像。

这是我尝试创建该类的更多实例的地方。这个方法在实际的类中,也许这就是问题所在?我尝试了不同的方法,但它们不起作用。

def newAdd():
      global And_list
      test=AND(10,10)
      And_list.append(deepcopy(test))
      And_list =listRecord()

最佳答案

Tkinter 小部件和 Canvas 项只是嵌入式 tcl 解释器中存在的对象的薄包装器。您不能使用 deepcopypickle 创建多个实例,因为这些命令对嵌入式 tcl 解释器一无所知。如果需要多个实例,则必须调用适当的 tkinter 函数。

关于python - 尝试创建同一类的多个实例时,无法 pickle _tkinter.tkapp 对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50568880/

相关文章:

python - 我如何使用 tkinter python 与 phrase = input ("ENTER TEXT ") Tkinter 文本框?

python - 如何获得覆盖整个 Tkinter Canvas 的绘图?

python - 如何使客户端套接字以非阻塞方式从另一个套接字接收数据?

python - 加载大 pickle 时,Flask 应用程序中的 Google App Engine gunicorn 工作超时?

python - 许多 pytest 固定装置与一个大型 "container"固定装置

python - 获取一项的元素查找 FindALL 列表

python - 将 SSE 混合到 Tornado 中

python - 通过python脚本读取.bash_history文件

mysql - 在 Django 中将未知对象类型保存到数据库中

python - 我可以将 python 字典 pickle 到 sqlite3 文本字段中吗?