Diferencia al cargar un ComboBox / ComboBoxEntry

Estoy usando Glade para armar las interfaces de usuario y en cierto momento necesite cargar un widget {Gtk} ComboBox y en otro un ComboBoxEntry a partir de una lista que tenia preparada.

Para comenzar, la diferencia entre estos 2 controles estriba en que, si bien es cierto ambos permiten al usuario seleccionar algun item a partir de la una lista desplegable, el segundo tambien permite(al usuario) ingresar un nuevo item como si de un textbox se tratara, cosa que el primero no.

Al codigo, tengo una lista(variable llamada parts) la cual tengo que pasarla a un objeto gtk.ListStore.

	model = gtk.ListStore(str)
 
	for j in parts:
		model.append([j])

Ahora, cargo el widget del XML que genera Glade:

#self?, si, es porque lo tengo en una clase xD
	cboDevice = self.glade.get_widget("cboDevice")
	cboDevice.set_model(model)

Ahora, he aqui la diferencia del ultimo paso:

Cargar un ComboBoxEntry:

	cboDevice.set_text_column(0)

Cargar un ComboBox:

	cell = gtk.CellRendererText()
	cboDevice.pack_start(cell, True)
	cboDevice.add_attribute(cell, 'text', 0)

Codigo completo de la funcion(metodo) que carga el ComboBoxEntry y retorna la cantidad de elementos.

	def setListDevice(self):
		parts = getListDevice()
		model = gtk.ListStore(str)
		items = len(parts)
 
		for j in parts:
			model.append([j])
 
		cboDevice = self.glade.get_widget("cboDevice")
		cboDevice.set_model(model)
		cboDevice.set_text_column(0)
 
		return items

Mas informacion: http://www.pygtk.org

Este articulo fue publicado por: shakka

 -----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d? s: a-- C++ UL++++ P+ L++ 
E- W++ N++ o-- K- w-- 
O- M- V- PS PE-- Y-- PGP++ t+++ 
5++ X++ R !tv b++ DI+++ D+ 
G++ e++ h+ !r y** 
------END GEEK CODE BLOCK------
Ver artículos del autor (73)


About this entry