我正在尝试将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'}]
谢谢你的帮助
不,没有办法用泡菜。Tkinter是嵌入式tcl解释器的包装器。这些小部件是tcl对象而不是python对象,python无法将它们流式传输到磁盘
您可以使用JSON或任何其他存储机制从小部件中获取数据并将数据保存到磁盘。在启动时,您需要读取数据并将其插入小部件中
相关问题 更多 >
编程相关推荐