Danke für eure Hilfe!
Es klappt zwar nur das Ergebnis ist nicht das was ich wollte.
Ich umschreib es mal kurz:
Ich hab mit Glade eine Oberfläche gebastelt in der sich in der Hauptansicht ein TreeView befindet. Und dieser wird durch einen anderen Dialog mit Daten gefüttert. Und jetzt muss ich ja jedes mal nachdem ich Daten über diesen Dialog eingegeben hab, den TreeView aktualisieren.
Und da ich die Funktion um den TreeView anzuzeigen und mit einem "Startwert" zu füllen schon hatte, dachte ich ich muss di Funktion einfach nochmal aufrufen um den TreeView zu aktualisieren. Nur funktioniert das so nicht
Als Ergebnis klatsch mir Python eine zweite Liste in das Widget rein. Anstatt das er es aktualisiert. Also muss ich im Prinzip das ganze nochmal komplett überdenken.
Hier mal der Code dazu.
Wenn jemand eine Idee oder noch besser einen Codefetzen hat aus dem ich mir das abschauen bzw. klar machen kann wie das klappt wär ich echt dankbar.
Code: Alles auswählen
#Anzeige
class Hauptfenster:
def __init__(self):
global gladedatei
gladedatei = gtk.glade.XML('hauptfenster.glade', 'gladeHauptfenster')
self.ansicht()
def ansicht(self):
empfaengerlistelaenge = len(empfaengerliste)
print empfaengerlistelaenge
self.listeempf = gtk.ListStore(str, str)
self.liste = gladedatei.get_widget('empftreeview')
self.liste.set_model(self.listeempf)
self.liste.columns_autosize()
renderer = gtk.CellRendererText()
column1 = gtk.TreeViewColumn('Nachname', renderer, text=0, foreground=1)
self.liste.append_column(column1)
iterator = self.listeempf.append()
self.listeempf.set_value(iterator, 0, "test")
self.listeempf.set_value(iterator, 0, "test2")
Code: Alles auswählen
#Dialog zur Datenerfassung
def __init__(self):
self.gladedateiempf = gtk.glade.XML('hauptfenster.glade', 'gladeNeuerEmpfaenger')
self.gladedateiempfwidget = self.gladedateiempf.get_widget('gladeNeuerEmpfaenger')
self.empfbuttonabbrechen = self.gladedateiempf.get_widget('empfbuttonabbrechen')
self.empfbuttonok = self.gladedateiempf.get_widget('empfbuttonok')
self.empfbuttonabbrechen.connect('clicked', self.on_empfbuttonabbrechen_clicked)
self.empfbuttonok.connect('clicked', self.on_empfbuttonok_clicked)
def on_empfbuttonabbrechen_clicked(self, handler):
self.gladedateiempfwidget.destroy()
def on_empfbuttonok_clicked(self, handler):
self.empfentryvorname = self.gladedateiempf.get_widget('empfentryvorname')
vorname = self.empfentryvorname.get_text()
if vorname == "":
text = "vorname"
self.errordialog(text)
else:
self.empfentrynachname = self.gladedateiempf.get_widget('empfentrynachname')
nachname = self.empfentrynachname.get_text()
if nachname == "":
text = "nachname"
self.errordialog(text)
else:
self.empfentryvorwahl = self.gladedateiempf.get_widget('empfentryvorwahl')
auswahlvorwahl = self.empfentryvorwahl.get_text()
if auswahlvorwahl == "":
text = "vorwahl"
self.errordialog(text)
else:
self.empfentryrufnummer = self.gladedateiempf.get_widget('empfentryrufnummer')
rufnummer = self.empfentryrufnummer.get_text()
if rufnummer == "":
text = "rufnummer"
self.errordialog(text)
elif rufnummer.isdigit():
empflisteneintrag = [vorname, nachname, netz, laenderkennung, vorwahl, rufnummer]
empfaengerliste.append(empflisteneintrag)
self.gladedateiempfwidget.destroy()
Hauptfenster().ansicht()
else:
text = "falsche_rufnummer"
self.errordialog(text)
def errordialog(self):
pass
Naja es sit nicht unbedingt der sauberste Code den es gibt. Aber es ist immerhin mein Erstlingswerk! Und ich will es jetzt erstmal zum laufen bringen und mir danach gedanken machen wie ich den Code besser bzw. eleganter schreiben kann.
Thx
Damaskus