[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