Topic: Gtk+3 e Glade  (Letto 1567 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline salfiore2012@gmail.com

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Gtk+3 e Glade
« il: Aprile 26, 2014, 14:43 »
Salve a tutti sono nuovo del forum,premetto che ho iniziato da poco ad imparare Python volevo sottoporvi un problema che non riesco a risolvere:
Ho creato un progetto in Glade che comprende un Gtk.TreeView ,quando eseguo il file in Python funziona tutto  ,stampo a video il contenuto  de lGtk.ListStore ma non riesco a visualizzare i dati nel  Gtk.TreeView e non riesco a capire dove sbaglio.
 
vi ringrazio anticipatamente e vi posto il codice



[codice]from gi.repository import Gtk,GObject
import sys
import sqlite3
from sqlite3 import *
 


    
        

class Handler:
    
    def onDeleteWindow(self, *args):
        Gtk.main_quit(*args)

    def on_bntchiudi_clicked(self, btnchiudi):
        Gtk.main_quit()
    def on_bntcerca_clicked(self,bntcerca):
        a=codice.get_text()
        #print(a)

        
        con=sqlite3.connect('Unipos.db')
        cur=con.cursor()
        cur.execute("select* from articoli where codart=?",(a,))
        cur.fetchall
  
        for row in cur:
            global q
            q=row
            #print(q)
            
            
            ean.set_text(q[1])
          
            desc.set_text(q[6])
            y=q[1]
            iva.set_text(str(q[4]))
            cur.execute("select* from varean where codart=?",(y,))
            cur.fetchall
  
            for row in cur:
                
                z=row
                
                a=str(z[1])
                b=str(z[2])
                c=float(z[3])
                d=str(z[4])
                
                
                store=Gtk.ListStore(str,str,float,str)
                treeview.set_model (store)
                store.append([a,b,c,d])
                
                for row in store:
                    print(row[:])
                    #print(len(store))
                    #listview.activate=True
                              
    


        
builder = Gtk.Builder()

builder.add_from_file("articoli.glade")
treeview = builder.get_object('trwean')

builder.connect_signals(Handler())
codice=builder.get_object("txtcodice")
iva=builder.get_object("txtiva")

ean=builder.get_object("txtean")
desc=builder.get_object("txtdescrizione")
window = builder.get_object("frmarticoli")
 
window.show_all()

Gtk.main()http://[/codice]
« Ultima modifica: Aprile 26, 2014, 19:31 da salfiore2012@gmail.com »

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Gtk+3 e Glade
« Risposta #1 il: Aprile 26, 2014, 16:00 »
vi posto il codice

Sii gentile, formattalo come tale. È sufficiente rientrare in edit sul messaggio, selezionare tutto il codice,
cliccare sul pulsante # in alto, risalvare il messaggio.

Offline salfiore2012@gmail.com

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re: Gtk+3 e Glade
« Risposta #2 il: Aprile 26, 2014, 19:35 »
In parte ho risolto cosi... mi manca solo di poter inserire più righe nel Gtk.TreeView



[codice]from gi.repository import Gtk,GObject
import sys
import sqlite3
from sqlite3 import *



    
        

class Handler:
    
    def onDeleteWindow(self, *args):
        Gtk.main_quit(*args)

    def on_bntchiudi_clicked(self, btnchiudi):
        Gtk.main_quit()
    def on_bntcerca_clicked(self,bntcerca):
        a=codice.get_text()
        #print(a)

        
        con=sqlite3.connect('Unipos.db')
        cur=con.cursor()
        cur.execute("select* from articoli where codart=?",(a,))
        cur.fetchall
  
        for row in cur:
            global q
            q=row
            #print(q)
            
            
            ean.set_text(q[1])
          
            desc.set_text(q[6])
            y=q[1]
            iva.set_text(str(q[4]))
            cur.execute("select* from varean where codart=?",(y,))
            cur.fetchall
  
            for row in cur:
                
                z=row
                
                a=str(z[1])
                b=str(z[2])
                c=float(z[3])
                d=str(z[4])
                
                store = Gtk.TreeStore(GObject.TYPE_STRING)  
                treeview.set_model(store)  
                treeview.set_reorderable(True)
                  
                # Contenuto della lista:  
                lista = Gtk.ListStore(str, str, float, str)  
                treeview.set_model(lista)
                
                lista.append([a,b,c,d])
                              
                              
    


        
builder = Gtk.Builder()

builder.add_from_file("articoli.glade")
treeview = builder.get_object('trwean')

builder.connect_signals(Handler())
codice=builder.get_object("txtcodice")
iva=builder.get_object("txtiva")

ean=builder.get_object("txtean")
desc=builder.get_object("txtdescrizione")
window = builder.get_object("frmarticoli")
cella = Gtk.CellRendererText()  
# Definizioni colonne:  
colonna0 = Gtk.TreeViewColumn("Ean", cella, text=0)  
colonna1 = Gtk.TreeViewColumn("Stato", cella, text=1)  
colonna2 = Gtk.TreeViewColumn("Mpl", cella, text=2)  
colonna3 = Gtk.TreeViewColumn("Data", cella, text=3)  
                # Append delle colonne:
treeview.append_column(colonna0)  
treeview.append_column(colonna1)  
treeview.append_column(colonna2)  
treeview.append_column(colonna3)  
                # Colonne allargabili:  
colonna0.set_resizable(True)  
colonna1.set_resizable(True)  
colonna2.set_resizable(True)  
colonna3.set_resizable(True)


 
window.show_all()

Gtk.main()[/codice]
« Ultima modifica: Aprile 26, 2014, 19:38 da salfiore2012@gmail.com »