Buongiorno lista.
Dopo aver capito come fare per visualizzare i dati di una tabella (mi è
sembrato di giocare col Lego: questo va dentro a quello che ha dentro
quest’altro, ecc. ), avevo intenzione di aggiungere una check box in
modo che l’utente potesse selezionare i dati voluti ed eventualmente
elaborarli. Ho quindi usato Gtk::CellRendererToggle e l’ho agganciato
alla Gtk::TreeView. La tabella si vede esattamente come la voglio, solo
che non riesco a capire come fare per “collegare” meglio i dati; mi
spiego: poniamo che la TreeView si chiami vista, ebbene, richiamando
vista.selection.selected[0] (o 1, 2, ecc.) riesco a vedere il valore del
dato selezionato, però non c’è verso di richiamare il valore del check
box per sapere se è true o false… ma potrebbe essere un problema
secondario.
Quello che mi preme di più è capire come correlare la casella del check
box a solo quella riga di dati in cui è: sono riuscito a fare in modo
che premendo sulla casella questa si selezioni (o deselezioni), ma poi
se passo (basta il semplice passaggio senza clic) col mouse sopra alle
altre caselle, queste ne assumono lo stesso stato, come se fossero un
unico oggetto (e forse è così…).
Questo è il codice che ho scritto (sì, coi sono alcuni “puts” di
controllo e alcuni passaggi sono superflui, ma per verifica e sicurezza
ho preferito fare così, in caso poi quando tutto è a posto semplifico):
rendersel è la CellRendererToggle
rendersel.signal_connect(“toggled”) {
valore = rendersel.active?
puts valore
valoreinverso = !valore
puts valoreinverso
rendersel.active = (valoreinverso)
}
Che come risultato è uguale a questo (se non ho fatto scemate in fase di
controllo):
rendersel.signal_connect(“toggled”) {
if rendersel.active = true
rendersel.active = false
elsif rendersel.active = false
rendersel.active = true
end
}
Forse devo specificargli di prendere esclusivamente la casella della
riga selezionata selezionata? Ma in questo caso come si fa? Ho cercato
esempi, ma non ho trovato niente di utile… eppure non mi pare che sia
una funzione esotica… forse è così semplice che solo io non sono
riuscito a capòire come funziona (e non mi meraviglierei se così fosse)?
Come sempre grazie per l’aiuto, sperando di farvi vedere il frutto dei
vostri aiuti al più presto
Daneel O.