Textwidget: Textausgabe mit geschweiften Klammern

Fragen zu Tkinter.
Antworten
CoC4
User
Beiträge: 13
Registriert: Dienstag 30. August 2011, 09:41

Hallo zusammen,

ich bastle an einer Textausgabe in ein Textwidget, die mir nicht so recht gelingen will;

Ich rufe über eine Checkbox eine Funktion auf und erhalte durch die "return"-Anweisung der Funktion den Wert der Funktion zurück,
der auch sofort ins Textwidget (eben durch die return-Anweisung) übertragen wird. Allerdings, und das ist das Problem, bleiben dabei immer so hässliche geschweifte Klammern (zwischen allen Rückgabewerten) stehen. Kann ich die irgendwie entfernen oder deren Ausgabe vermeiden?

z.B.

Checkbox auslesen:

Code: Alles auswählen

def callback():
    normale_var1 = var1.get()
    if normale_var1 == 1:
        TextWidget.insert(END, Methode.Attribut)

in der Funktion steht z.B. (ganz vereinfacht) sowas wie:

Code: Alles auswählen

def Funktion():
    x = 1+2
    y = 5 + 7
    a = u'auslesen von x ergab:', x
    return a, y
Dabei kommt dann eine Ausgabe zustande, die etwa so aussieht:

{{"auslesen von x ergab:}3}{{
12}}

Wäre nett, wenn ihr nen Hinweis hättet :)
BlackJack

@CoC4: Du solltest vielleicht dort eine Zeichenkette übergeben die so aussieht, wie Du das gerne hättest und keine verschachtelten Tupel, aus denen Tk beziehungsweise Tkinter dann erst irgendwie eine Zeichenkette erstellen muss.
CoC4
User
Beiträge: 13
Registriert: Dienstag 30. August 2011, 09:41

D.h. was genau?

Ich habe z.B. auch so etwas dabei:

Code: Alles auswählen

...
Text = [u'und', u'ich', u'habe', u'keine', u'Ahnung']
Ausgabe = u' '.join(Text)
return Ausgabe
Das funktionirt - aber "join" geht eben nur bei Listen; aber wie kann ich z.B.

Code: Alles auswählen

return len(Text1), len(Text2)
so zusammenfügen, dass die Klammenr nicht entstehen?

Kann man das nicht irgendwie bearbeiten oder Tkinter davon abhalten das zu tun?
Zuletzt geändert von CoC4 am Donnerstag 1. September 2011, 18:43, insgesamt 1-mal geändert.
BlackJack

@CoC4: Zeig mal ein kleines konkretes Beispiel wo das passiert.
CoC4
User
Beiträge: 13
Registriert: Dienstag 30. August 2011, 09:41

Beispielausgabe:

{{

Textlänge Text 1: } 966} {{Textlänge Text 2: } 602} {{
Textlänge Text 3: } 1194} {{
Textlänge Text 4: } 795}

bei einem Code, der so aussieht:

Code: Alles auswählen

    x = u'Textlänge Text 1: ', len(text_1)
    y = u'\nTextlänge Text 2: ', len(text_2)
    z = u'\nTextlänge Text 3: ', len(text_3)
    a = u'\nTextlänge Text 4: ', len(text_4)
    
    
    return x,y,z,a
BlackJack

@CoC4: Ja dann schau Dir doch mal bitte an was da bei ``return`` zurückgegeben wird. Das ist keine Zeichenkette. Schau Dir mal mit der `type()`-Funktion an was Du da hast. Und im Tutorial in der Python-Dokumentation was Python für Grunddatentypen bietet und wie man damit arbeitet.
CoC4
User
Beiträge: 13
Registriert: Dienstag 30. August 2011, 09:41

ah klar^^ is kein String - oje...
Sorry und danke! :)
Antworten