由于这个问题,我变得非常沮丧。我以前有过它并修复了它,但是当我更改代码中的某些内容时它又回来了。准确地说,当我按下按钮时,我试图创建一个类的多个实例。我正在使用 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 解释器中存在的对象的薄包装器。您不能使用 deepcopy
或 pickle
创建多个实例,因为这些命令对嵌入式 tcl 解释器一无所知。如果需要多个实例,则必须调用适当的 tkinter 函数。
关于python - 尝试创建同一类的多个实例时,无法 pickle _tkinter.tkapp 对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50568880/