Topic: [GUIDA] Creare un treeview con all'interno un liststore con glade  (Letto 3512 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Reve_91

  • python unicellularis
  • *
  • Post: 44
  • Punti reputazione: 0
    • Mostra profilo
Ciao a tutti,
non so se può essere utile ma considerando il fatto che su internet si trova veramente poco su questo argomento ho deciso di condividere quello che ho fatto così che possa essere di aiuto anche ad altre persone che (come me) hanno cercato per ore...

Treeview con liststore all'interno:
programma python:
[hlpycode]#!/usr/bin/env python

__author__= "Reve_91"

try:
   import gtk
   import gtk.glade
   import pygtk
   import gobject
   pygtk.require("2.0")
except:
   print "Devi installare le librerie pygtk"

class finestra:
#
   gladeFile = gtk.Builder()   
   gladeFile.add_from_file("sql.glade")   
                              
   window1 = gladeFile.get_object('window1')            #
   treeview = gladeFile.get_object('treeview1')            #

   window1.show()

   def inizializza(self):
      def on_window1_destroy(widget, data=None):
         gtk.main_quit()
      
      segnali = {
         'on_window1_destroy': on_window1_destroy,
      }
      self.gladeFile.connect_signals(segnali)

      cella = gtk.CellRendererText()
      # Definizioni colonne:
      colonna0 = gtk.TreeViewColumn("Nome", cella, text=0)
      colonna1 = gtk.TreeViewColumn("Cognome", cella, text=1)
      colonna2 = gtk.TreeViewColumn("N. Telefono", cella, text=2)
      colonna3 = gtk.TreeViewColumn("Problema riscontrato", cella, text=3)
      # Append delle colonne:
      self.treeview.append_column(colonna0)
      self.treeview.append_column(colonna1)
      self.treeview.append_column(colonna2)
      self.treeview.append_column(colonna3)
      # Colonne allargabili:
      colonna0.set_resizable(True)
      colonna1.set_resizable(True)
      colonna2.set_resizable(True)
      colonna3.set_resizable(True)
      #
      store = gtk.TreeStore(gobject.TYPE_STRING)
      self.treeview.set_model(store)
      self.treeview.set_reorderable(True)
      # Contenuto della lista:
      self.lista = gtk.ListStore(str, str, str, str)
      self.treeview.set_model(self.lista)
      self.lista.append(self.getList())
   
   def getList(self):
      return ["Nome","Cognome","Telefono","Problema riscontrato"]

#

# Inizializzazione:
if __name__ == "__main__":
   der = finestra()
   der.inizializza()
   gtk.main()[/hlpycode]

glade:
[hlpycode]<?xml version="1.0"?>
<interface>
  <requires lib="gtk+" version="2.16"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="window1">
    <signal name="destroy" handler="on_window1_destroy"/>
    <child>
      <object class="GtkFixed" id="fixed1">
        <property name="visible">True</property>
        <child>
          <object class="GtkTreeView" id="treeview1">
            <property name="width_request">541</property>
            <property name="height_request">261</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="enable_grid_lines">vertical</property>
          </object>
          <packing>
            <property name="x">7</property>
            <property name="y">10</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>[/hlpycode]
Spero di essere stato utile a qualcuno...
PS: allego anche i file in una cartella compressa

Offline Mefrio

  • python unicellularis
  • *
  • Post: 1
  • Punti reputazione: 0
    • Mostra profilo
Re: [GUIDA] Creare un treeview con all'interno un liststore con glade
« Risposta #1 il: Marzo 16, 2011, 19:00 »
Ciao a tutti ragazzi! È la prima volta che scrivo qui e mi scuso di aver riesumato un vecchissimo post ma vorrei sapere come aggiungere elementi alla secondo riga della lista...il codice postato da Reve_91 non va oltre la prima