Seite 1 von 1

Grid-Manager-Problem

Verfasst: Mittwoch 27. Mai 2020, 14:27
von DMD-OS
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.

Re: Grid-Manager-Problem

Verfasst: Donnerstag 28. Mai 2020, 09:49
von peterpy
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