wxpython -listctrlにアイテムを保存します
質問
私の質問は、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()
所属していません StackOverflow