[英]Frames in Tkinter
How can I make the desired output as shown in the picture?如何制作如图所示的所需 output? Frame 3 should be just beside to the two frames 1 and 2 regardless of how many widgets are inside them.第 3 帧应该位于第 1 和第 2 两个帧的旁边,无论其中有多少小部件。
import tkinter as tk
master = tk.Tk()
master.title("Risk Calculator")
master.geometry("400x400")
group_1 = tk.LabelFrame(master, text="Frame 1")
group_1.grid(column=0,row=0,padx=8,pady=10,sticky="WE")
capital_label = tk.Label(group_1, text = 'Capital *', font=('calibre', 10))
capital_label.grid(column=0,row=1, sticky = 'e')
group_2 = tk.LabelFrame(master, text="Frame 2")
group_2.grid(column=0,row=3,padx=8,pady=4,sticky="WE")
broker_label = tk.Label(group_2, text = 'Broker', font=('calibre', 10))
broker_label.grid(column=0,row=3,padx=3,sticky='w')
group_3 = tk.LabelFrame(master, text="Frame 3")
group_3.grid(column=1,row=0,padx=8,pady=10,sticky="WE")
test = tk.Label(group_3, text = 'Test', font=('calibre', 10))
test.grid(column=0,row=3,padx=3,sticky='w')
test1 = tk.Label(group_3, text = 'Test1', font=('calibre', 10))
test1.grid(column=0,row=4,padx=3,sticky='w')
test2 = tk.Label(group_3, text = 'Test2', font=('calibre', 10))
test2.grid(column=0,row=5,padx=3,sticky='w')
master.mainloop()
@Martin suggestion is good but it continues leaving an undesired white space between frame 1 and 2. You can use pack
to perfectly control the output: @Martin 建议很好,但它继续在第 1 帧和第 2 帧之间留下不需要的空白区域。您可以使用pack
来完美控制 output:
import tkinter as tk
master = tk.Tk()
master.title("Risk Calculator")
master.geometry("400x400")
# Frame Left
frame_left = tk.Frame(master)
frame_left.pack(fill=tk.Y, side=tk.LEFT)
# Frame right
frame_right = tk.Frame(master)
frame_right.pack(fill=tk.Y, side=tk.LEFT)
# Frame 1
group_1 = tk.LabelFrame(frame_left, text="Frame 1")
group_1.pack(padx=8, pady=10)
capital_label = tk.Label(group_1, text = 'Capital *', font=('calibre', 10))
capital_label.grid(column=0,row=1, sticky = 'e')
# Frame 2
group_2 = tk.LabelFrame(frame_left, text="Frame 2")
group_2.pack(padx=8,pady=4)
broker_label = tk.Label(group_2, text = 'Broker', font=('calibre', 10))
broker_label.grid(column=0,row=3,padx=3,sticky='w')
# Frame 3
group_3 = tk.LabelFrame(frame_right, text="Frame 3")
group_3.pack(padx=8, pady=10)
test = tk.Label(group_3, text = 'Test', font=('calibre', 10))
test.grid(column=0,row=3,padx=3,sticky='w')
test1 = tk.Label(group_3, text = 'Test1', font=('calibre', 10))
test1.grid(column=0,row=4,padx=3,sticky='w')
test2 = tk.Label(group_3, text = 'Test2', font=('calibre', 10))
test2.grid(column=0,row=5,padx=3,sticky='w')
master.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.