wie füllt man den Textbuffer mit Variablen

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

wie füllt man den Textbuffer mit Variablen

Beitragvon htw7448 » Donnerstag 26. April 2007, 14:31

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

Beitragvon BlackJack » Donnerstag 26. April 2007, 14:40

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:

Beitragvon htw7448 » Donnerstag 26. April 2007, 15:46

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
Benutzeravatar
encbladexp
User
Beiträge: 61
Registriert: Freitag 7. März 2003, 19:28
Kontaktdaten:

Beitragvon encbladexp » Donnerstag 26. April 2007, 16:33

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder