Hi,
Ich versuche grade eine Gui mittels TKinter zu erstellen. Aber ich komme mit den geometry managern nicht so recht klar. Ich habe eine große canvas, die ungefähr die hälfte der Fläche einnimmt, und drum herum will ich buttons, radioboxes und eine liste verteilen, so das alles um die große canvas herum positioniert ist. Aber bei pack() kann ich ja nur 4 richtungsvorgaben setzen... wie kann ich da z.b. sagen das die canvas oben links ist, nicht nur links oder oben. Bei place() kann ich natürlich selber festlegen wo etwas ist, aber das ist auf dauer nervig. Bei grid() blick auch nicht so recht durch. Wenn ich das große canvas auf (row,column) = (0,0) setze, ist es zwar da wo es sein soll, aber der rest passt nicht wirklich, auch wenn ich columnspan und rowspan benutze. Ich brauche hierbei also etwas hilfe
Kennt ihr ein gutes und vorallem anschauliches tutorial für sowas? Ich finde immer nur sachen mit wenigen elementen die ganz grob zeigen wie das geht.
Thx.
Anschauliches Tutorial für Geometry Manager?
Hi Arp
Hier einige Links:
Pack: http://effbot.org/tkinterbook/pack.htm
Grid: http://effbot.org/tkinterbook/grid.htm
Place: http://effbot.org/tkinterbook/place.htm
Gruß wuf
Es ist relativ einfach:Arp hat geschrieben:Aber bei pack() kann ich ja nur 4 richtungsvorgaben setzen... wie kann ich da z.b. sagen das die canvas oben links ist, nicht nur links oder oben
Code: Alles auswählen
import Tkinter as tk
app_win = tk.Tk()
app_win.geometry('300x300')
canvas = tk.Canvas(app_win, bg='steelblue', width=100, height=100)
canvas.pack(anchor='nw')
app_win.mainloop()
Hier eine kleine Grid-Studie, welche evtl noch verbessert werden kann:Arp hat geschrieben:Bei grid() blick auch nicht so recht durch. Wenn ich das große canvas auf (row,column) = (0,0) setze, ist es zwar da wo es sein soll, aber der rest passt nicht wirklich, auch wenn ich columnspan und rowspan benutze. Ich brauche hierbei also etwas hilfe
Code: Alles auswählen
#~~ Studie mit dem Grid-Manager
import Tkinter as tk
BORDER = 60
FRAME_COLOR = 'gray'
app_win = tk.Tk()
app_win.geometry('300x300')
main_frame = tk.Frame(app_win)
main_frame.grid(row=0, column=0, columnspan=3, rowspan=3,
sticky='nesw')
main_frame.grid_rowconfigure(0, weight=0)
main_frame.grid_columnconfigure(0, weight=0)
main_frame.grid_rowconfigure(1, weight=1)
main_frame.grid_columnconfigure(1, weight=1)
main_frame.grid_rowconfigure(2, weight=0)
main_frame.grid_columnconfigure(2, weight=0)
frame_01 = tk.Frame(main_frame, height=BORDER, bg=FRAME_COLOR)
frame_01.grid(row=0, column=0, columnspan=3, sticky='we')
button_01 = tk.Button(main_frame, text='B-1')
button_01.grid(row=0, column=1)
frame_02 = tk.Frame(main_frame, width=BORDER, bg=FRAME_COLOR)
frame_02.grid(row=1, column=0, sticky='ns')
button_02 = tk.Button(main_frame, text='B-2')
button_02.grid(row=1, column=0)
canvas = tk.Canvas(main_frame, bg='steelblue', highlightthickness=0)
canvas.grid(row=1, column=1, sticky='nesw')
frame_03 = tk.Frame(main_frame, width=BORDER, bg=FRAME_COLOR)
frame_03.grid(row=1, column=2, sticky='ns')
button_03 = tk.Button(main_frame, text='B-3')
button_03.grid(row=1, column=2)
frame_04 = tk.Frame(main_frame, height=BORDER, bg=FRAME_COLOR)
frame_04.grid(row=2, column=0, columnspan=3, sticky='we')
button_04 = tk.Button(main_frame, text='B-4')
button_04.grid(row=2, column=1)
app_win.grid_rowconfigure(0, weight=2)
app_win.grid_columnconfigure(0, weight=2)
app_win.mainloop()
Pack: http://effbot.org/tkinterbook/pack.htm
Grid: http://effbot.org/tkinterbook/grid.htm
Place: http://effbot.org/tkinterbook/place.htm
Gruß wuf
Take it easy Mates!