Objekte (Labels, Buttons, Bilder) auf Frames in Grid-Layout platzieren
Verfasst: Freitag 30. Dezember 2022, 18:26
Hallo Python-Community!
die ersten Geh-Versuche mit Python haben eigentlich ganz gut geklappt - nun scheitere ich aber an der GUI mit tkinter. Nach nun zwei Stunden Youtube-Videos, Internetsuche und Ausprobieren von Code-Schnipseln aus dem Netz, habe ich mir bei euch einen Account erstellt und erbitte Hilfe!
Ich möchte eine kleine GUI im Format 1024x600 bauen. Das Fenster wird vier "Zonen" mit unterschiedlichen Hintergrundfarben haben, siehe Screenshot 1. Das klappt auch soweit. Sobald ich nun aber ein Objekt in einer der Zonen (Frames) platzieren möchte, zerhagelt es die Formatierung bzw. die ursprünglich definierten Frames lösen sich in Luft auf.
Habt ihr eine Idee, woran das liegen könnte?
Hier mein Code:
Vor dem Einfügen der Überschriften sieht alles noch aus wie es soll:

Sobald die TLHeadline in den Code kommt passiert folgendes:

Danke euch vorab für Eure Hilfe!
Viele Grüße
Michael
die ersten Geh-Versuche mit Python haben eigentlich ganz gut geklappt - nun scheitere ich aber an der GUI mit tkinter. Nach nun zwei Stunden Youtube-Videos, Internetsuche und Ausprobieren von Code-Schnipseln aus dem Netz, habe ich mir bei euch einen Account erstellt und erbitte Hilfe!

Ich möchte eine kleine GUI im Format 1024x600 bauen. Das Fenster wird vier "Zonen" mit unterschiedlichen Hintergrundfarben haben, siehe Screenshot 1. Das klappt auch soweit. Sobald ich nun aber ein Objekt in einer der Zonen (Frames) platzieren möchte, zerhagelt es die Formatierung bzw. die ursprünglich definierten Frames lösen sich in Luft auf.
Habt ihr eine Idee, woran das liegen könnte?
Hier mein Code:
Code: Alles auswählen
import tkinter as tk
Fenster = tk.Tk()
Fenster.geometry('1024x600')
Fenster.resizable(False, False)
# Frames vorbereiten
TopLayer = tk.Frame(Fenster, bg='#000000', width=1024, height=50)
LeftLayer = tk.Frame(Fenster, bg='#D8D8D8', width=624, height=450)
RightLayer = tk.Frame(Fenster, bg='#EFF8FB', width=400, height=450)
BottomLayer = tk.Frame(Fenster, bg='#000000', width=1024, height=100)
# Frames anzeigen
TopLayer.grid(row=0, columnspan=2)
LeftLayer.grid(row=1, column=0)
RightLayer.grid(row=1, column=1)
BottomLayer.grid(row=2, columnspan=2)
# Überschrift auf TopLayer erstellen
TLHeadline = tk.Label(TopLayer, text="Meine Überschrift", font=("Arial", 12), fg="red")
TLHeadline.pack()
Fenster.mainloop()

Sobald die TLHeadline in den Code kommt passiert folgendes:

Danke euch vorab für Eure Hilfe!
Viele Grüße
Michael