Frage

Meine Frage ist, ob wir die Einzelteile auf ListCtrl sparen können so jedesmal, wenn jemand die Anwendung öffnet, sind die Elemente dort und wenn der Benutzer es entfernt, es entfernt auch aus der Konfiguration. Ich weiß, dass ich verwenden kann wx.Config und ich versuche, das zu erreichen verwenden, aber ich weiß nicht, wie es in einer Art und Weise zu lesen, zu erreichen, was ich will.

So was würde ich gerne wissen, ist eine richtige Art und Weise zu schreiben / die wx.Config in einer Art und Weise gelesen, dass jedesmal, wenn jemand die Anwendung geöffnet wird, werden die Elemente von ListCtrl sind.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

wx.Config ist sehr einfach, erstellen Sie einfach Config Namen der App vorbei und fügen Sie Daten z.

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

Jetzt können Sie es jederzeit lesen

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

Liste cntrl Speichern von Daten würde ich vorschlagen, dass Sie zuerst alle Daten in einer Python-Liste lesen und diese Liste in config-Beize, das nächste Mal gelesen config unpickle Daten und Bestücken-Liste, Struktur weise hinzufügen Funktionen wie FillList / Liste ansehen, so können Sie Lesen werden sicher Teil Schreiben sind in der Nähe und ähnliche.

z. Sie können dieses Skelett

verwenden
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()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top