Grid-Manager-Problem

Fragen zu Tkinter.
Antworten
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

Hi
Ich versuche mit Grid-Manager ein Frame zu strukturieren.

Code: Alles auswählen

import tkinter as tk

root = tk.Tk()
root.geometry("400x800+500+50")

parameter = tk.Frame(root, bg='green')
parameter.pack(fill=tk.BOTH, expand=True)
parameter.grid_rowconfigure(0, weight=1, uniform="parameter")
parameter.grid_columnconfigure(0, weight=1, uniform="parameter")
parameter.grid_columnconfigure(1, weight=0, uniform="parameter")

datenspalten = tk.Frame(parameter)
datenspalten.grid(row=0, column=0, sticky=tk.NSEW)
vsbar_spalten = tk.Frame(parameter, width=20, bg='yellow')  # Später für die Scrollbar
vsbar_spalten.grid(row=0, column=1, sticky=tk.NS)

heading = tk.Frame(datenspalten, bg='blue')
heading.pack(side=tk.TOP, fill=tk.X)
lb_frame = tk.Frame(heading, bg='purple')
lb_frame.pack(fill=tk.X, expand=True)

tk.Label(lb_frame, text='Hallo Welt', anchor=tk.W).pack(fill=tk.BOTH, expand=True)


body = tk.Frame(datenspalten, bg='pink')
body.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)


root.mainloop()
Ich versuche die grüne Fläche zu enfernen, so daß die Scrollbar immer mit fester Größe rechts angezeigt werden kann.
Benutzeravatar
peterpy
User
Beiträge: 188
Registriert: Donnerstag 7. März 2013, 11:35

Hallo DMD-OS,

Ich hab mal versucht auf Papier nach zu zeichnen was Du tust.
Du packst Frames in Frame, wobei sich die Frames wieder verdecken und vermischst pack() und grid() .
Der Name lb_frame ist irreführend, da es ein Widget LabelFrame gibt.
Warum benutzt Du nicht ausschliesslich den grid Manager? Der bietet bessere Möglichkeiten.
Schau mal hier: https://effbot.org/tkinterbook/grid.htm
Gruss Peter
Antworten