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

1 Comment
Jump to comment form | comments rss [?] | trackback uri [?]