tkinter:如何序列化树视图?

AJN*_*AJN 2 python treeview tkinter pickle python-2.7

我正在开发一个python tkinter应用程序,它将yaml文件中的初始数据读入分层TreeView,以便用户进一步编辑.

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

mar*_*eau 5

我怀疑是否有任何Python模块可以满足您的需求,即使有,我认为您不希望构建应用程序来使用它.相反,你可能会更好地解耦事物并将主要数据存储在独立于人机界面的东西中(可能是也可能不是图形,可能会有所变化,或者将来会改变).这有时被称为应用程序"模型".

这样做将允许您加载和保存它,无论当前人机界面是什么构成.因此,例如,pickle如果内部模型由一个或多个Python对象组成,则可以自由使用.或者,您可以将数据保存回yaml格式文件,这样可以在以后再次将其重新加载,因为程序已经可以执行此操作.

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

从编码中抽出一些时间,熟悉模型 - 视图 - 控制器(MVC)设计模式.