Pregunta

Mi pregunta es si podemos guardar los elementos en ListCtrl así que cada vez que alguien abre la aplicación, los artículos están allí y si el usuario lo elimina, sino que también elimina de la configuración. Sé que puedo usar wx.Config y yo estoy tratando de lograr usando eso, pero no sé cómo leerlo en una manera de lograr lo que quiero.

Así que lo que me gustaría saber es una forma correcta de escritura / lectura del wx.Config de manera que cada vez que alguien abre la aplicación, los artículos de ListCtrl están ahí.

Gracias de antemano.

¿Fue útil?

Solución

El uso de wx.Config es muy fácil, basta con crear config pasando nombre de su aplicación y añadir los datos por ejemplo.

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

Ahora se puede leer en cualquier momento

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

Para guardar los datos de la lista CNTRL Yo sugeriría que lea primero todos los datos en una lista de pitón y de la salmuera que se lista en config, la próxima vez leer configuración, los datos unpickle y Rellenar lista, sabia estructura añadir funciones como FillList / saveList para que pueda Asegúrese de leer la escritura parte están cerca y similares.

por ejemplo. puede utilizar este esqueleto

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()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top