String Ausgabe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Annieone
User
Beiträge: 1
Registriert: Samstag 25. Juli 2020, 10:39

Hey Leute
ich mache eine Datenbankabfrage und bekomme meine Daten als Tuples zurück.
Jetzt formatiere ich diesen in ein Panda dataframe und möchte den String in ein Tkinter Label ausgeben.
Wenn ich den String auf der Konsole ausgebe ist er schön sortiert und so dargestellt wie ich es will.
"Drucke" ich den String in das Label ist er alles andere als sortiert.
Wie bekomme ich es hin, dass in meinem Label der String ebenfalls schön dargestellt wird? (Siehe Bild)

Bild
Mein Code:
stringInhalt=ReturnStringInhalt(varAnzeigeU, varAnzeigeO)
InhaltFenster2 = Label(fenster2, text=(stringInhalt))
InhaltFenster2.config(font=('Arial', 12))
InhaltFenster2.place(x = 10, y = 40, width=400, height=180)

def ReturnStringInhalt(uID, oID):
conn= sqlite3.connect('DatenbankKuehlschrank.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM Inhalt WHERE (id<=? AND id>=?) AND Anzahl > 0",(oID,uID))
rows = cursor.fetchall()
conn.close()
testPanda=pd.DataFrame(rows)
testPanda.columns=[' ID ', ' Name ', ' MHD ', ' Barcode ', 'Anzahl']
print (testPanda)
return testPanda
Sirius3
User
Beiträge: 17757
Registriert: Sonntag 21. Oktober 2012, 17:20

Das Bild ist ziemlich nicht sichtbar. Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht 5. Variablen werden komplett klein geschrieben. Die Namen sollten keine kryptischen Abkürzungen enthalten. varAnzeigeU besteht aus var, was unsinnig ist, weil ja klar ist, dass das eine Variable ist, und das U (oder O) läßt einen nur rätseln. Pandas hat übrigens eine Routine, um Datenbanken direkt abzufragen. Eine Tabelle in einem Tkinter-Label darzustellen ist aber schwierig. Das ist ja keine Konsole, wofür Pandas eine lesbare Ausgabe hat. Meist will man ja doch eine Tabellenartige anzeige, die muß man aber selbst programmieren, z.B. mit vielen Labeln.
Antworten