Seite 1 von 1

Wozu ein Parrent

Verfasst: Freitag 27. April 2012, 09:43
von Satzende
Hallo

Hab mal eine Frage. Wozu muss man bei einem Widget einen Parrent angeben, wenn es auch ohne geht ?

Code: Alles auswählen

root = Tkinter.Tk()

Tkinter.Button(text="KO").pack()
Tkinter.Label(text="Hallo Welt").pack()
root.mainloop()

Re: Wozu ein Parrent

Verfasst: Freitag 27. April 2012, 11:08
von BlackJack
@Satzende: Das geht so lange gut, bis es eben nicht mehr gut geht. Frag mich jetzt nicht nach den konkreten Problemen, aber wir hatten hier schon mal welche, die darauf zurück zu führen waren.

Re: Wozu ein Parrent

Verfasst: Freitag 27. April 2012, 11:55
von EyDu
Warum auch immer es ohne die Angabe eines parent-Objekts (man schreibt es übrigens mit einem r und nicht mit zwei) hier funktioniert, wird es bei verschachtelten Elementen wichtig (was auch sofort vorliegt, sobal ein Steuerelement in das Hauptfenster kommt). Auf diesem Weg kann zum Beispiel festgestellt werden, wann welches Objekt gezeichnet werden muss oder wie groß ein Widget sein muss, damit alle darin enthaltenen Objekte hineinpassen.

Re: Wozu ein Parrent

Verfasst: Freitag 27. April 2012, 12:37
von yipyip
Das Parent-Objekt kann man sich als Container vorstellen, in das man weitere Widgets packen kann. So lassen sich komplexe Layouts in hierarchischer Form aufbauen. Ein kleines Beispiel:

Code: Alles auswählen

import Tkinter as tk

root = tk.Tk()
root.geometry("200x200")

# kein parent angegeben, also im root container
but0 = tk.Button(text="but0")
but0.pack(side="left")
 
but1 = tk.Button(text="but1")
but1.pack(side="left")

frame = tk.Frame()
# im frame container
but3 = tk.Button(frame, text="but3")
but3.grid(row=0, column=0)
 
but4 = tk.Button(frame, text="but4")
but4.grid(row=1, column=0)

frame.pack(side="right")

root.mainloop()