我是新手。
如何将 TreeStore 存储到文件中?我可以通过 TreeModel 接口存储来自底层 TreeStore 的特定值,但是有没有办法“抓取”整个底层 TreeStore 作为一个值,或者我必须遍历 TreeStore,一次存储一行?
/J
您必须自己遍历 TreeStore。
问题是商店没有任何外部表示。Haskell 类型通常具有可用于序列化的 Read 和 Show 实例(假设 read . show === 该类型的 id ,如果不这样做是不礼貌的)。Read 和 Show 并不适合所有序列化需求(它们在序列化的时间或大小上都不是特别有效),但在这些情况下,您可以使用 Data.Binary。
外部数据类型,包括 GLib 和 Gtk 类型,往往没有 Read、Show 或 Binary 实例,因此您需要编写自己的实例,或者只需编写一个通过手动遍历存储生成 String 或 ByteString 的函数。