Liststore in einem TreeView aktualisieren --> Wie?

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Benutzeravatar
Damaskus
Administrator
Beiträge: 890
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

Liststore in einem TreeView aktualisieren --> Wie?

Beitragvon Damaskus » 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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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 Modvoice
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

Beitragvon ProgChild » 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.
Benutzeravatar
Damaskus
Administrator
Beiträge: 890
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

Beitragvon Damaskus » 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 :wink:
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)

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]