Seite 1 von 1

Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 16:47
von CoC4
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 :)

Re: Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 17:26
von 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.

Re: Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 18:34
von CoC4
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?

Re: Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 18:39
von BlackJack
@CoC4: Zeig mal ein kleines konkretes Beispiel wo das passiert.

Re: Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 18:49
von CoC4
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

Re: Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 20:03
von 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.

Re: Textwidget: Textausgabe mit geschweiften Klammern

Verfasst: Donnerstag 1. September 2011, 20:16
von CoC4
ah klar^^ is kein String - oje...
Sorry und danke! :)