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

2024-06-25 05:46:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将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:

def save(widgets):
    with open("testfile.pickle","wb") as file:
        jsonWidgets = json.dumps(widgets) #TypeError: Object of type Button is not JSON serializable
        file.write(jsonWidgets)

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

[{'widget': <tkinter.Button object .0>, 'type': 'button', 'font': <tkinter.font.Font object at 0x000001A4EC0AC860>, 'ID': 0, 'name': 'widget_no_0'}]

谢谢你的帮助


Tags: jsontkintersavedefastypewithopen
1条回答
网友
1楼 · 发布于 2024-06-25 05:46:42

Is there a way of writing '_tkinter.tkapp objects' to a file by using pickle, json or the like? - python tkinter

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

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

相关问题 更多 >