无法腌制 _tkinter.tkapp objects 尝试创建相同 class 的多个实例时出错
can't pickle _tkinter.tkapp objects error when trying to create multiple instances of the same class
因为这个问题,我真的很沮丧。我以前有过并修复了它,但是当我更改代码中的某些内容时它又回来了。准确地说,我试图在按下按钮时创建 class 的多个实例。我正在使用 python 3.6 和 tkinter。当我第一次写我的 class 时,我使用一个矩形(通过使用 create_rectangle 方法创建)进行视觉表示。在我的 class 以我想要的方式运行后,我想用一张照片显示在我的 canvas 而不是矩形上。正如标题所暗示的,我的主要错误是 "can't pickle _tkinter.tkapp objects" 并且在此之前有很多关于 deepcopy 的错误。这是完整的错误 https://pastebin.com/nAQifmnA
在使用图像之前,此修复有效 Can't pickle _tkinter.tkapp objects
忘记说了,图片我用的是 PhotoImage class。
这是我尝试创建更多 class 实例的地方。这个方法在实际的 class 里面,也许这就是问题所在?我尝试了不同的方法,但它们不起作用。
def newAdd():
global And_list
test=AND(10,10)
And_list.append(deepcopy(test))
And_list =listRecord()
Tkinter 小部件和 canvas 项只是存在于嵌入式 tcl 解释器中的对象的薄包装。您不能使用 deepcopy
或 pickle
来创建多个实例,因为这些命令对嵌入式 tcl 解释器一无所知。如果需要多个实例,则必须调用适当的 tkinter 函数。
因为这个问题,我真的很沮丧。我以前有过并修复了它,但是当我更改代码中的某些内容时它又回来了。准确地说,我试图在按下按钮时创建 class 的多个实例。我正在使用 python 3.6 和 tkinter。当我第一次写我的 class 时,我使用一个矩形(通过使用 create_rectangle 方法创建)进行视觉表示。在我的 class 以我想要的方式运行后,我想用一张照片显示在我的 canvas 而不是矩形上。正如标题所暗示的,我的主要错误是 "can't pickle _tkinter.tkapp objects" 并且在此之前有很多关于 deepcopy 的错误。这是完整的错误 https://pastebin.com/nAQifmnA
在使用图像之前,此修复有效 Can't pickle _tkinter.tkapp objects
忘记说了,图片我用的是 PhotoImage class。
这是我尝试创建更多 class 实例的地方。这个方法在实际的 class 里面,也许这就是问题所在?我尝试了不同的方法,但它们不起作用。
def newAdd():
global And_list
test=AND(10,10)
And_list.append(deepcopy(test))
And_list =listRecord()
Tkinter 小部件和 canvas 项只是存在于嵌入式 tcl 解释器中的对象的薄包装。您不能使用 deepcopy
或 pickle
来创建多个实例,因为这些命令对嵌入式 tcl 解释器一无所知。如果需要多个实例,则必须调用适当的 tkinter 函数。