Python Tkinter中的帧

Python Tkinter中的帧,python,tkinter,Python,Tkinter,如何获得如图所示的所需输出?第3帧应该正好位于第1帧和第2帧的旁边,而不管其中有多少小部件 将tkinter作为tk导入 master=tk.tk() 硕士头衔(“风险计算器”) 主几何(“400x400”) 组1=tk.LabelFrame(master,text=“Frame 1”) 组1.网格(列=0,行=0,padx=8,pady=10,sticky=“WE”) 大写字母标签=tk.label(第1组,文本='capital*',字体=('calibre',10)) 大写字母_labe

如何获得如图所示的所需输出?第3帧应该正好位于第1帧和第2帧的旁边,而不管其中有多少小部件

将tkinter作为tk导入
master=tk.tk()
硕士头衔(“风险计算器”)
主几何(“400x400”)
组1=tk.LabelFrame(master,text=“Frame 1”)
组1.网格(列=0,行=0,padx=8,pady=10,sticky=“WE”)
大写字母标签=tk.label(第1组,文本='capital*',字体=('calibre',10))
大写字母_label.grid(列=0,行=1,粘性=e)
组2=tk.LabelFrame(master,text=“Frame 2”)
组2.网格(列=0,行=3,padx=8,pady=4,sticky=“WE”)
broker_label=tk.label(组_2,文本='broker',字体=('calibre',10))
broker_label.grid(列=0,行=3,padx=3,sticky='w')
组3=tk.LabelFrame(master,text=“Frame 3”)
组3.网格(列=1,行=0,padx=8,pady=10,sticky=“WE”)
test=tk.Label(第3组,文本='test',字体=('calibre',10))
test.grid(列=0,行=3,padx=3,sticky='w')
test1=tk.Label(组3,文本='test1',字体=('calibre',10))
test1.grid(列=0,行=4,padx=3,sticky='w')
test2=tk.Label(组3,文本='test2',字体=('calibre',10))
test2.grid(列=0,行=5,padx=3,sticky='w')
master.mainloop()

@Martin的建议很好,但在第1帧和第2帧之间仍会留下不需要的空白。您可以使用
pack
完美控制输出:

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()

对于第1帧和第2帧,将参数
sticky=N
添加到
.grid()
方法中。对于第3帧,将参数
rowspan=2
添加到
.grid()
方法。欢迎使用StackOverflow,请查看以改进您的问题。您的代码在哪里?完美!将在完整的代码中完成。非常感谢@David!也感谢@Martin!