[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