Datenbankabfrageergebnis in Textview anzeigen

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
cruzo
User
Beiträge: 5
Registriert: Donnerstag 21. Juni 2012, 11:21

Hallo zusammen,
folgendes Problem:
Ich habe mir in Glade ein UI erstellt wo auch ein textview enthalten ist. Nun habe ich mir eine Datenbankabfrage erstellt und möchte diese mir in dem textview anzeigen lassen. Dies funktioniert auch, nur sieht die Ausgabe noch nicht so aus wie ich es möchte.
Zu allererst meine Funktion samt Abfrage:

Code: Alles auswählen

    def add(self,widget):
    	cursor.execute("UPDATE tisch1 SET menge =menge +1 where id = 1")
	ausg = "select a.name,t.menge from angebot a, tisch1 t where a.id = t.id and t.menge > 0"
	cursor.execute(ausg)
	self.erg = cursor.fetchall()
	string = str(self.erg)
        self.tview = self.wTree.get_widget("textview1")
        self.tview.get_buffer().insert(self.tview.get_buffer().get_end_iter(), "\n" + string)
        connection.commit()
und die Ausgabe sieht dann folgendermaßen aus:

Code: Alles auswählen

[(u'Apfelsaft', 11)]
Nun zu meiner Frage, wie bekomme ich es hin, das ich diese Ansicht bekomme:

Code: Alles auswählen

Apfelsaft : 11
Hoffe ihr könnt mir helfen.

cruzo
Zuletzt geändert von Anonymous am Samstag 23. Juni 2012, 17:01, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Wie du siehst, hast du eine Liste mit einem Tupel drin. Wenn du also auf das erste Element der Liste zugreifst, könntest du zum Beispiel per Unpacking an die beiden Elemente des Tupels kommen und denen etwas String-Formatierung gönnen. Solltest du alles an vorigem Code eigenhändig geschafft haben, wird das bestimmt kein Hexenwerk sein :mrgreen:
cruzo
User
Beiträge: 5
Registriert: Donnerstag 21. Juni 2012, 11:21

hallo webspider,
danke erstmal für deine Antwort. Ja hab den großteil selbst programmiert, aber leider steh ich auf dem schlauch und weiß nicht was du mit Unpacking meinst.
BlackJack

@cruzo: Mit unpacking ist gemeint das man bei einer Zuweisung eine Liste von Namen links vom Gleichheitszeichen und ein iterierbares Objekt rechts davon hat und die Elemente dieses Objekts an die einzelnen Namen gebunden werden.

Code: Alles auswählen

In [383]: divmod(42, 23)
Out[383]: (1, 19)

In [384]: a, b = divmod(42, 23)

In [385]: a
Out[385]: 1

In [386]: b
Out[386]: 19
Dein Problem hat nichts mit GUIs oder Datenbanken sondern mit ganz einfach Python-Grundlagen zu tun.
cruzo
User
Beiträge: 5
Registriert: Donnerstag 21. Juni 2012, 11:21

Ah danke dir, jetzt hat es Klick gemacht und es funktioniert sauber. :mrgreen:
Antworten