有没有一种写作方式'_tkinter.tkapp对象';通过使用pickle、json或类似的方法来创建文件python tkinter

有没有一种写作方式'_tkinter.tkapp对象';通过使用pickle、json或类似的方法来创建文件python tkinter,python,tkinter,serialization,Python,Tkinter,Serialization,我正在尝试将tkinter“widgets”写入一个文件,以便在不同的tkinter项目中再次使用它们。我曾尝试使用pickle和json来实现这一点,但不幸的是,它没有成功。 以下是我尝试过的一些事情: 泡菜: def save(widgets): with open("testfile.pickle","wb") as file: pickle.dump(widgets,file) #TypeError: can't pickle _tkinter.tkapp obj

我正在尝试将tkinter“widgets”写入一个文件,以便在不同的tkinter项目中再次使用它们。我曾尝试使用pickle和json来实现这一点,但不幸的是,它没有成功。 以下是我尝试过的一些事情:

泡菜:

def save(widgets):
    with open("testfile.pickle","wb") as file:
        pickle.dump(widgets,file) #TypeError: can't pickle _tkinter.tkapp objects
json:

如果我对widgets变量使用print()函数,我会得到以下结果:

[{'widget': <tkinter.Button object .0>, 'type': 'button', 'font': <tkinter.font.Font object at 0x000001A4EC0AC860>, 'ID': 0, 'name': 'widget_no_0'}]
[{'widget':,'type':'button','font':,'ID':0,'name':'widget\u no\u 0'}]
谢谢你的帮助

有没有一种方法可以使用pickle、json等将“\u tkinter.tkapp objects”写入文件python tkinter

不,没有办法用泡菜。Tkinter是嵌入式tcl解释器的包装器。这些小部件是tcl对象而不是python对象,python无法将它们流式传输到磁盘


您可以使用JSON或任何其他存储机制从小部件中获取数据并将数据保存到磁盘。启动时,您需要读取数据并将其插入小部件。

所以我几乎被卡住了?
[{'widget': <tkinter.Button object .0>, 'type': 'button', 'font': <tkinter.font.Font object at 0x000001A4EC0AC860>, 'ID': 0, 'name': 'widget_no_0'}]