[pyar] Campos duplicados en GtkComboBox con Glade+Python

Esteban Alejandro Chauque achauque en gmail.com
Mar Mayo 10 17:41:14 ART 2011


Yo lo solucione asi:
    def dbComboBox(self, combo, Lists, StrSQL):
        self.setString(StrSQL)
        Lists.clear()
        self.executeQuery()
        rows = self.dbcursor.fetchall()
        for data in rows:
            Lists.append(data)

        combo.clear()

        combo.set_model(Lists)
        x=0
        for col in self.dbcursor.description:
            cell = gtk.CellRendererText()
            combo.pack_start(cell, True)
            combo.add_attribute(cell, 'text', x)
            x=x+1

Esta función es parte de una clase que tengo, si necesitas la clase te
la paso completa.


saludos

2011/5/10 Carlos Joel Delgado Pizarro <carlosj2585 en gmail.com>:
> Hola a todos.
>
> Estoy diseñando un pequeño sistema usando Glade+Python, todo va bien, solo
> que al momento de entrar a un formulario que contiene 2 GtkComboBox, tengo
> problemas al  llenar los datos de uno de los GtkComboBox, uno sirve para
> seleccionar provincias y el otro para seleccionar distritos, el cual cambia
> de contenido, de acuerdo a la provincia seleccionada.
>
> Ya busqué en Google, por ahí encontré que hay que limpiar el contenido del
> modelo (que es del tipo gtk.ListStore) con el que se llena el segundo
> GtkComboBox usando el metodo clear(), ya lo probé y no funciona (estuve
> leyendo en DevHelp también).
>
> También encontré[1] que Glade genera un atributo: <property name="items"
> translatable="yes"></property> en el XML del formulario, pero no lo encontré
> en el archivo Glade que estoy usando, así que tampoco puedo corregir el
> problema.
>
> Adjunto el código que llena el combo de Distritos cuando se cambie de
> Provincia, y unos cuantos pantallazos[2].
>
>
>     def on_cboProvincia_changed(self, widget):
>         # -- Llenar el combo de distritos, obtener el id de la provincia
> seleccionada
>         id_prov =
> self.cboProvincia.get_model()[self.cboProvincia.get_active()][0]
>         print 'Se cambió a la provincia: ' + str(id_prov)
> #        self.cboDistrito.get_model().clear()
>         # -- Llenar el combo de distritos, de acuerdo a la provincia
> seleccionada
>         self.llenar_distritos(id_prov)
>         pass
>
>     def llenar_distritos(self, id_prov):
>         # -- Recuperarla lista de distritos de la provincia elegida
>         distritos = self.fx.listar_distritos(id_prov)
>         print id_prov,
>         print distritos
>         #limpiar el combo
>         modelo = gtk.ListStore(str) # Crear un ListStore para llenar el
> combo
>         modelo.clear()
>         # -- Llenar el ListStore con los distritos obtenidos
>         for dist in distritos:
>             modelo.append([dist[1]])
>         # -- Mostrar el contenido del combo
>         self.cboDistrito.set_model(modelo)
>         cell = gtk.CellRendererText()
>         self.cboDistrito.pack_start(cell)
>         self.cboDistrito.add_attribute(cell, 'text', 0)
>         # -- Seleccionar el primer elemento del combo
>         self.cboDistrito.set_active(0)
>         pass
>
> [1] http://www.mail-archive.com/pygtk@daa.com.au/msg15537.html
> [2]
> https://picasaweb.google.com/carlosj2585/PythonGlade?authkey=Gv1sRgCN2xjq_Pl8GllgE&feat=directlink
>
>
> Saludos!
>
> ————————————————–
> Carlos Joel Delgado Pizarro
> http://carlosj2585.wordpress.com
> http://pycj.wordpress.com (Python!)
> PLUG - Peruvian Linux Users Group http://www.linux.org.pe
> Mosoq Kallpa – Linux Users Group http://www.mosoqkallpa.org/
> Linux User Registered # 460895
> Ubuntu User Registered # 28720
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



More information about the pyar mailing list