Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Damaskus
Administrator
Beiträge: 995 Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle
Mittwoch 6. Juli 2005, 06:35
Hallo,
ich hab ein Treeview / Liststore mit Daten aus einer Liste gefüttert. Klappt soweit prima. Nur wie aktualisiere ich die Liststore wenn ich die Daten in der Liste ändere?
Code: Alles auswählen
import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
schleifenliste = [['test', 'tester'], ['test2', 'tester']]
class Hauptfenster:
def __init__(self):
global gladedatei
gladedatei = gtk.glade.XML('hauptfenster.glade', 'gladeHauptfenster')
self.schleifenansicht()
def schleifenansicht(self):
schllistestore = gtk.ListStore(str, str)
eintraege = len(schleifenliste)
for i in range(eintraege):
schllistestore.insert(i, row=schleifenliste[i])
self.schllistewidget = gladedatei.get_widget('schleifentreeview')
self.schllistewidget.set_model(schllistestore)
cellrenderer = gtk.CellRendererText()
columnschleife = gtk.TreeViewColumn("Schleifen", cellrenderer, text=0)
columnschleife.set_resizable(resizable=True)
self.schllistewidget.append_column(columnschleife)
columnempf = gtk.TreeViewColumn("Empfaenger", cellrenderer, text=1)
columnempf.set_resizable(resizable=True)
self.schllistewidget.append_column(columnempf)
Hauptfenster()
gtk.main()
Thx
Damaskus
Leonidas
Python-Forum Veteran
Beiträge: 16025 Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:
Mittwoch 6. Juli 2005, 12:45
Öhm, da musst du gleub ich etwas mit 'Model' rumtricksen.. wie wäre es wenn du auch die Glade-Datei postet, dann könnte ich es mir direkt an deinem Code überlegen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ProgChild
User
Beiträge: 210 Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:
Mittwoch 6. Juli 2005, 21:53
Also ich würde mir mal die Variable "schllistestore" merken, z.B. als Klassen Variable, um dann mit z.B. insert neue Werte hinzufügen zu können.
Damaskus
Administrator
Beiträge: 995 Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle
Mittwoch 6. Juli 2005, 21:53
Leonidas hat geschrieben: Öhm, da musst du gleub ich etwas mit 'Model' rumtricksen.. wie wäre es wenn du auch die Glade-Datei postet, dann könnte ich es mir direkt an deinem Code überlegen?
Das hat schon geholfen
Hier die Änderung:
Code: Alles auswählen
def schleifenansicht(self, update):
if update == 'True':
eintraege = len(schleifenliste)
self.schllistewidget = gladedatei.get_widget('schleifentreeview')
self.schlliststore = self.schllistewidget.get_model()
self.schlliststore.clear()
for i in range(eintraege):
self.schlliststore.insert(i, row=schleifenliste[i])
else:
schllistestore = gtk.ListStore(str, str, str, str)
eintraege = len(schleifenliste)
for i in range(eintraege):
schllistestore.insert(i, row=schleifenliste[i])
self.schllistewidget = gladedatei.get_widget('schleifentreeview')
self.schllistewidget.set_model(schllistestore)
cellrenderer = gtk.CellRendererText()
columnart = gtk.TreeViewColumn("Art", cellrenderer, text=0)
columnart.set_resizable(resizable=True)
self.schllistewidget.append_column(columnart)
columnschleife = gtk.TreeViewColumn("Schleifen", cellrenderer, text=1)
columnschleife.set_resizable(resizable=True)
self.schllistewidget.append_column(columnschleife)
columnkom = gtk.TreeViewColumn("Kommentar", cellrenderer, text=2)
columnkom.set_resizable(resizable=True)
self.schllistewidget.append_column(columnkom)
columnempf = gtk.TreeViewColumn("Empfaenger", cellrenderer, text=3)
columnempf.set_resizable(resizable=True)
self.schllistewidget.append_column(columnempf)