[Python] Problema con GTKTreeView in Glade

Marcello. marcello a linuxvil.it
Dom 25 Nov 2007 14:19:24 CET


Ho 2 problemi con Glade e GtkTreeView.

Eseguendo il Prg mi si apre correttamente la finsestra fatta con Glade e si
popola di dati presi da un DB.
Adesso ho la necessità di sapere su quale record ho cliccato con il mouse,
quindi ho aggiunto in 'Signals' del 
Widget 'GtkTreeView' row_activated  l'evento
'on_ElencoImpianti_row_activated' ma non so (e non ho trovato niente in
rete) come passare questi parametri a ' def SelezioneImpianto(*args):'

Secondo problema devo ordinare i dati che visualizzo. Ho utilizzato:
model.set_sort_column_id (col1, gtk.SORT_ASCENDING)
se al posto di 'col1' metto 'col2' o 'col3' o 'col4' mi ordina in base ai
campi.
Il mio problema è ordinare i campi dalla finestra( Bottone o altra
soluzione).
Ho letto che è possibile ordinare i dati cliccando sull'intestazione della
colonna, ma non so proprio come mettelo in pratica.
Ringrazio chi possa aiutarmi
Ciao  *




def finestra():
	ApplicazioneGlade = gtk.glade.XML("C:\TelesisSw\window.glade")
	EventiGlade ={"on_FinestraPrincipale_delete_event":gtk.main_quit,
	
"on_ElencoImpianti_row_activated":SelezioneImpianto,
			  }
	ApplicazioneGlade.signal_autoconnect(EventiGlade)
	elencoimpianti = ApplicazioneGlade.get_widget('ElencoImpianti')
	elencoimpianti.get_selection().set_mode(gtk.SELECTION_SINGLE)
	model = gtk.ListStore(str, str, str, str)
	col1,col2,col3,col4 = range(4)
	s = odbc.odbc(DataBase) # mi collego al DSN
	cur = s.cursor()
	cur.execute("select NomeImpianto ,CodiceImpianto, NomeSW,
TipoCentrale from Impianti where Gestione = '"+gestione+"'")
	dati = cur.fetchall()
	for dato in dati:
		var1=str(dato[0])
		var2=str(dato[1])
		var3=str(dato[2])
		var4=str(dato[3])
		record = model.append([var1,var2,var3,var4])
	cur.close()
	elencoimpianti.set_model(model)
	cell = gtk.CellRendererText()
	column1 = gtk.TreeViewColumn("  - Nome Impianto  - ", cell, text =
col1)
	column1.set_resizable (True)
	elencoimpianti.append_column (column1)
	column2 = gtk.TreeViewColumn(" - Codice Impianto - ", cell, text =
col2)
	column2.set_resizable (True)
	elencoimpianti.append_column (column2)
	column3 = gtk.TreeViewColumn("Personalizzatore", cell, text = col3)
	column3.set_resizable (True)
	elencoimpianti.append_column (column3)
	column4 = gtk.TreeViewColumn("Centrale", cell, text = col4)
	column4.set_resizable (True)
	elencoimpianti.append_column (column4)
      model.set_sort_column_id (col1, gtk.SORT_ASCENDING)
	gtk.main()
def SelezioneImpianto(*args):
	print 'Hai cliccato su '+' ' +NomeImpianto+' ' +CodiceImpianto+' '
+NomeSW+' ' +TipoCentrale




More information about the Python mailing list