Absatz bei Raspberry Pi Zero

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
PythonBoiiii
User
Beiträge: 10
Registriert: Dienstag 19. Februar 2019, 18:09

Hallo,

ich habe das Problem, dass wenn ich über meinen Raspberry Pi Zero ein Text per JFrame (per TKinter) ausgebe und einen Absatz in diesen String per \n einbauen will, dann wird dieser Absatz nicht ausgewertet, bzw. es wird wörtwörtlich \n ausgegeben.
Weiß hier jemand, woran das liegt, und wie ich einen Absatz erzeugen kann?

Freundliche Grüße
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann hast Du wohl wörtlich '\n' eingegeben. Ohne Code kann man nicht mehr sagen.
PythonBoiiii
User
Beiträge: 10
Registriert: Dienstag 19. Februar 2019, 18:09

Sirius3 hat geschrieben: Sonntag 17. März 2019, 19:58 Dann hast Du wohl wörtlich '\n' eingegeben. Ohne Code kann man nicht mehr sagen.
Ja, das habe ich. Wenn ich das Programm über meinen Laptop starte ist alles kein Problem, das \n wird richtig interpretiert. Das Problem geht also vom Raspberry aus. Wenn ich da identische Programm per USB Stick auf dem Raspberry ausführe, nur dann tritt dieses Problem auf.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Glaube ich nicht. Zeig mal bitte dein Programm.
PythonBoiiii
User
Beiträge: 10
Registriert: Dienstag 19. Februar 2019, 18:09

Jo, hier:

Code: Alles auswählen

from tkinter import *
from tkinter.font import Font
import datetime
import time

liste={3: {
    18:["Wort \n18"],
    19:["Wort\n19"],
    20:["Wort \n20"],
    21:["Wort\n21"],
    22:["Wort\n22"],
    23:["Wort\n23"],
    24:["Wort\n24"]
}}

def nachricht():
    now = datetime.datetime.now()
    monat = int(now.strftime("%m"))
    tag = int(now.strftime("%d"))
    jahr = int(now.strftime("%y"))
    root = Tk()
    root.geometry('1000x1000')
    lab1 = Label(root, text= "\"" + liste[monat][tag] + "\"")
    style = Font(family="Bahnschrift Condensed", size=18)
    lab1.configure(font=style)
    lab1.pack()
    root.after(300000, root.destroy)
    root.mainloop()

def output():
    for datum in range(1, len(liste)):
        nachricht()
        time.sleep(1)
output()

Beste Grüße
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PythonBoiiii: Da passiert gar nichts weil die ``for``-Schleife in `output()` überhaupt nicht durchlaufen wird.

Wenn man den Fehler korrigiert, kommt auch gleich der nächste:

Code: Alles auswählen

Traceback (most recent call last):
  File "forum15.py", line 34, in <module>
    output()
  File "forum15.py", line 32, in output
    nachricht()
  File "forum15.py", line 23, in nachricht
    lab1 = Label(root, text= "\"" + liste[monat][tag] + "\"")
TypeError: must be str, not list
Das ist also ziemlich sicher nicht der Code der bei Dir läuft, weil der läuft nicht.

Edit: Es auch ziemlich unsinnig Teile von `now` als Zeichenkette zu formatieren und dann wieder in eine Zahl umzuwandeln. `datetime`-Objekte haben Tag, Monat, Jahr, und noch so einiges andere als Attribute.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten