我的问题是,如果我们可以节省的项目上的ListCtrl所以每次有人打开的应用程序,该项目在那里,如果用户删除它,它也从配置中删除。 我知道,我可以使用wx.Config我试图使用来完成,但我不知道怎么的方式阅读来完成我想要的东西。

所以我想知道什么是写一个正确的方法/在每次有人打开应用程序的方式读取wx.Config,从的ListCtrl项目的存在。

预先感谢。

有帮助吗?

解决方案

使用wx.Config是很容易的,只需创建配置通过你的应用程序的名称,并添加数据e.g。

config = wx.Config("StackOverflowTest")
config.Write("testdata", "yes it works!")

现在你可以随时阅读

config = wx.Config("StackOverflowTest")
print config.Read("testdata")

有关节能清单CNTRL数据我建议你先读所有的数据在Python列表和咸菜该列表进入配置,下一次读取配置,unpickle数据和填充列表,结构明智像fillList / saveList添加功能,这样你就可以在读取写入在附近并且类似的部分。

e.g。可以使用此骨架

import wx
import cPickle

class MyListCtrl(wx.ListCtrl):

    def __init__(self, *args, **kwargs):
        wx.ListCtrl.__init__(self, *args, **kwargs)
        self.config = wx.Config("MykoolApp")

        self.fillist()

    def filllist(self):
         # load rows and check for error too, if no data
        data = self.config.Read("list_cntrl_data")
        rowList = cPickle.loads(data)

        for row in rowList:
            # add this row to list cntrl
            pass

    def savelist(self):
        rows = []
        for row in self:
            # add data to rows
            pass

        data =  cPickle.dumps(rows)
        self.config.Write("list_cntrl_data", data)

    def onchange(self):
        """
        on changes to list e.g. add delete call save list
        """
        self.savelist()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top