====== 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** False True False True False True False _File True True False gtk-new True False True True gtk-open True False True True gtk-save True False True True gtk-save-as True False True True True False gtk-quit True False True True True False _Modifica True True False gtk-cut True False True True gtk-copy True False True True gtk-paste True False True True gtk-delete True False True True True False _Visualizza True True False A_iuto True True False gtk-about True False True True False True 0 True True True True 1 True False True False True False Nome True True 0 True True False False True True True True 1 True True 0 True False True False Cognome True True 0 True True False False True True True True 1 True True 2 salva True True True True True 3 True True 2