wie füllt man den Textbuffer mit Variablen

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
htw7448
User
Beiträge: 51
Registriert: Montag 16. April 2007, 10:59
Wohnort: Messel(Hessen)
Kontaktdaten:

ich bin gerade auf folgende unschöne Sache gestoßen.

Wenn ich den Textbuffer mit dem Wert einer Variablen füllen will, geht dies leider nicht auf kurzem Wege wie:

Code: Alles auswählen

nr = 10
self.textbuffer.insert_at_cursor("Ergebnis : %s\n") %nr

Muss man stattdessen den String vorher umständlich selsbt generieren?

Code: Alles auswählen

nr = 10
result= "Ergebnis : %s\n") %nr
self.textbuffer.insert_at_cursor(result)
BlackJack

Natürlich muss man das nicht vorher machen und das Zwischenergebnis an einen Namen binden. Schau doch nochmal auf was Du im ersten Beispiel den binären Operator ``%`` anwenden willst, insbesondere was links von dem Operator steht.

Wenn ich mal raten müsste hast Du ungefähr so eine Fehlermeldung bekommen:

Code: Alles auswählen

In [39]: None % 10
---------------------------------------------------------------------------
exceptions.TypeError          Traceback (most recent call last)

/home/new/<ipython console>

TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'
htw7448
User
Beiträge: 51
Registriert: Montag 16. April 2007, 10:59
Wohnort: Messel(Hessen)
Kontaktdaten:

Nach ziemlich langem probieren habe ich

Code: Alles auswählen

self.textbuffer.insert_at_cursor("Ergebnis :" +"%d"%nr)
gefunden. Das Problem war das vor dem Operator kein String zu erkennen war. Der Formatierungsoperator arbeitet nur wenn er in der Klammer steht. Denke das waren die Probleme.

Danke
encbladexp
User
Beiträge: 61
Registriert: Freitag 7. März 2003, 19:28
Kontaktdaten:

htw7448 hat geschrieben:

Code: Alles auswählen

self.textbuffer.insert_at_cursor("Ergebnis :" +"%d"%nr)
Noch etwas kürzer wäre:

Code: Alles auswählen

self.textbuffer.insert_at_cursor("Ergebnis: %d" % nr)
mfg Betz Stefan
Antworten