tkinter:如何序列化树视图? - python

我正在开发一个python tkinter应用程序,该应用程序将yaml文件中的初始数据读取到层次结构的TreeView中,以供用户进一步编辑。

要实现“保存数据”和“撤消”功能,我是否应该走树视图并将数据重构为要序列化(棘手)的python对象?
还是有一个python模块允许例如指定树视图和要保存的输出文件?

python大神给出的解决方案

我怀疑是否有任何Python模块可以满足您的需求,即使有,我也不认为您希望围绕使用它来构建应用程序。取而代之的是,您最好脱开事物并将原始数据存储在与人机界面无关的内容中(后者可能会或可能不会图形化,并且将来可能会更改或以其他方式更改)。有时称为应用程序“模型”。

这样做将允许您加载和保存它,而与当前人机界面的构成无关。因此,例如,如果内部模型由一个或多个Python对象组成,则可以自由使用pickle。或者,您可以将数据保存回yaml格式的文件中,这将使以后再次加载回该文件,因为该程序已经可以做到这一点。

同样,当用户编辑TreeView时,应对Model进行等效更改以使两者保持同步。

花一些时间进行编码,并熟悉Model–View–Controller (MVC)设计模式。