質問

私の質問は、listctrlにアイテムを保存できるかどうかです。そのため、誰かがアプリケーションを開くたびにアイテムがあり、ユーザーがそれを削除すると、構成からも削除されます。私はWX.Configを使用できることを知っており、それを使用して達成しようとしていますが、私が望むものを達成する方法でそれを読む方法がわかりません。

ですから、私が知りたいのは、誰かがアプリケーションを開くたびにListCtrlのアイテムがそこにあるように、WX.Configを書く/読む適切な方法です。

前もって感謝します。

役に立ちましたか?

解決

wx.configを使用するのは非常に簡単です。アプリの構成を渡す名前を作成してデータを追加するだけです。

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

今、あなたはいつでもそれを読むことができます

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

CNTRLデータを保存するには、最初にすべてのデータをPythonリストのすべてのデータとそのリストのピックルを構成に読み、次回は構成、未解決のデータ、およびfiellist/savelistのような関数を追加するため、読みます。書く部分は近くにあり、似ています。

たとえば、このスケルトンを使用できます

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