Domanda

La mia domanda è se siamo in grado di salvare gli elementi su ListCtrl così ogni volta che qualcuno apre l'applicazione, gli elementi ci sono e se l'utente lo rimuove, si rimuove anche dalla configurazione. So che posso usare wx.Config e sto cercando di realizzare con questo, ma non so come leggere in un modo per ottenere ciò che voglio.

Quindi quello che vorrei sapere è un modo corretto di scrittura / lettura del wx.Config in modo che ogni volta che qualcuno apre l'applicazione, gli elementi da ListCtrl ci sono.

Grazie in anticipo.

È stato utile?

Soluzione

Utilizzando wx.Config è molto semplice, basta creare config passando nome della tua app e aggiungere i dati per es.

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

Ora si può leggere in qualsiasi momento

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

Per il salvataggio dei dati elenco CNTRL vorrei suggerire di leggere prima tutti i dati in un elenco di pitone e sottaceto che elenco in config, la prossima volta leggere config, deserializzare dati e la lista Popola, struttura saggia aggiungere funzioni come FillList / appunti in modo da poter assicurarsi lettura scrittura parte si trovano nelle vicinanze e simili.

es. è possibile utilizzare questo scheletro

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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top