> altro, è l'unica cosa che mi viene in mente con le informazioni che ho - > se il problema non è quello, mi sa che senza un esempiuccio funzionante > del problema non so aiutarti). >
Ecco l'esempio funzionante. Chiedo perdono ai mostri che leggono la lista per li codice che posto... sono un novello. Sorvolate dal notare il modo in cui filtro i dati dei "prodotti". Nella realtà uso il parametro che mi dà la selezione del fornitore per estrarre i dati già filtrati dal database con un comando SQL. import pygtk pygtk.require('2.0') import gtk class Programma: def __init__(self, principale): self.mioPrincipale = principale self.finestraprincipale = gtk.Window(gtk.WINDOW_TOPLEVEL) self.finestraprincipale.connect("delete_event", self.delete_event) self.finestraprincipale.connect("destroy", self.destroy) self.finestraprincipale.set_size_request(300, 300) self.finestraprincipale.set_title("PROGRAMMA PROVA LISTVIEW") self.framegenerale = gtk.HBox(False,0) self.finestraprincipale.add(self.framegenerale) self.quadroprodotti = gtk.VBox (True, 1) self.scrollwinfornitori = gtk.ScrolledWindow() self.scrollwinfornitori.set_size_request(100, 200) self.scrollwinfornitori.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.listafornitor = gtk.ListStore(str, str) self.listafornitori = gtk.TreeView(self.listafornitor) self.listafornitori.set_rules_hint(1) self.colonnaidfornitore = gtk.TreeViewColumn("idfornitore") self.colonnanomefornitore = gtk.TreeViewColumn("Fornitore") self.listafornitori.append_column(self.colonnanomefornitore) self.cell_fornitori = gtk.CellRendererText() self.colonnanomefornitore.pack_start(self.cell_fornitori, True) self.colonnanomefornitore.add_attribute(self.cell_fornitori, 'text', 1) self.quadroprodotti.add(self.scrollwinfornitori) self.scrollwinfornitori.add_with_viewport(self.listafornitori) self.scrollwinfornitori.set_shadow_type(gtk.SHADOW_ETCHED_IN) self.scrollwinprodotti =gtk.ScrolledWindow() self.scrollwinprodotti.set_size_request(100, 200) self.scrollwinprodotti.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.listaprodott = gtk.ListStore(str, str) self.listaprodotti= gtk.TreeView(self.listaprodott) self.listaprodotti.set_rules_hint(1) self.colonnaidprodotto = gtk.TreeViewColumn("IdProdotto") self.colonnanomeprodotto = gtk.TreeViewColumn("Prodotto") self.listaprodotti.append_column(self.colonnanomeprodotto) self.cell_prodotti = gtk.CellRendererText() self.colonnanomeprodotto.pack_start(self.cell_prodotti, True) self.colonnanomeprodotto.add_attribute(self.cell_prodotti, 'text', 0) self.quadroprodotti.add(self.scrollwinprodotti) self.scrollwinprodotti.add_with_viewport(self.listaprodotti) self.scrollwinprodotti.set_shadow_type(gtk.SHADOW_ETCHED_OUT) self.quadroricetta = gtk.VBox(False, 1) self.framegenerale.add(self.quadroprodotti) self.framegenerale.show_all() self.finestraprincipale.show_all() rows = [("1","Tizio"), ("2","Caio"), ("3","Sempronio")] for row in rows: nomefornitore = str(row[1]) idfornitore = str(row[0]) self.listafornitor.append([idfornitore, nomefornitore]) treeselection=self.listafornitori.get_selection() treeselection.set_mode(gtk.SELECTION_SINGLE) treeselection.set_select_function(self.stampalistaprodotti, iter) def stampalistaprodotti(self, evento, dato): self.listaprodott.clear() treeiter = self.listafornitor.get_iter(evento) idfornitoreselezionato = self.listafornitor.get_value(treeiter, 0) rows = [("1", "1", "Mele"),("2", "4", "Pollo"),("3", "7", "Carote")] for row in rows: idfornitore = str(row[0]) idprodotto = str(row[1]) nomeprodotto = str(row[2]) if idfornitore == idfornitoreselezionato: self.listaprodott.append([nomeprodotto, idprodotto]) def delete_event(self, widget, data=None): return gtk.FALSE def destroy(self, widget, data=None): return gtk.main_quit() def main(self): gtk.main() if __name__ == "__main__": radice="" first = Programma(radice) first.main() _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python