====== Il Treeview in Ruby e Gtk-3 ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//23/10/2017 - 08:28//** \\ \\
Diseguito uno script commentato che mostra come usare il GtktreeView con Ruby-gtk3.
**tv.rb**
#!/usr/bin/env ruby
require 'gtk2'
class MainForm < Gtk::Builder
def initialize
super()
self.add_from_file("treeview.glade")
self['window1'].show_all
self['window1'].signal_connect('destroy') { Gtk.main_quit }
self['button1'].signal_connect('clicked') { }
self['treeview1'].signal_connect("row-activated") do |treeview, path, column|
#Prende indice riga
self['window1'].set_title ('Indice: '+path)
#Prende contenuto celle
i = treeview.selection.selected
self['entry1'].text=i[0]
self['entry2'].text=i[1]
end
# Creiamo le colonne per il treeview
# Due colonne: Nome, Cognome
renderer = Gtk::CellRendererText.new
col0 = Gtk::TreeViewColumn.new("Nome", renderer, :text => 0)
col1 = Gtk::TreeViewColumn.new("Cognome", renderer, :text => 1)
#Aggiungiamo le colonne appena create
self['treeview1'].append_column(col0)
self['treeview1'].append_column(col1)
#Creiamo un modello per i dati(2 colonne string)
treestore = Gtk::TreeStore.new(String, String)
#Associamo il modello al treeview
self['treeview1'].model = treestore
#Aggiungiamo una riga
iter = treestore.append(nil)
treestore.set_value(iter, 0, "Fabio")
treestore.set_value(iter, 1, "Di Matteo")
#Aggiungiamo un'altra riga
iter = treestore.append(nil)
treestore.set_value(iter, 0, "Chester")
treestore.set_value(iter, 1, "Di Matteo")
end
end
Gtk.init
myForm = MainForm.new()
Gtk.main
**treeview.glade**