为两个不同的帧设置单独的网格
set separate grid for two different frames
我想要一个包含两个框架的 window。顶部框架包括五个用于用户输入的标签。底部框架包括两个按钮。我得到了这个结果:
很明显是按钮位置不对。在我看来,按钮的网格不起作用。
这是我的代码:
frame1 = Frame(master).grid(row=0, sticky="ew")
frame2 = Frame(master).grid(row=1, sticky="ew")
Label(frame1, text="game name").grid(row=0, column=0)
Label(frame1, text="env").grid(row=1, column=0)
Label(frame1, text="event_source").grid(row=2, column=0)
Label(frame1, text="event_name").grid(row=3, column=0)
Label(frame1, text="game_id").grid(row=4, column=0)
e1 = Entry(frame1).grid(row=0, column=1)
e2 = Entry(frame1).grid(row=1, column=1)
e3 = Entry(frame1).grid(row=2, column=1)
e4 = Entry(frame1).grid(row=3, column=1)
e5 = Entry(frame1).grid(row=4, column=1)
Button(frame2, text='Quit', command=master.destroy).grid(row=0, column=0)
Button(frame2, text='Save', command=lambda: self.show_entry_fields(e1, e2, e3, e4, e5)).grid(row=0, column=3)
您不应在定义框架的同一行上定义网格细节。
frame1 = Frame(master).grid(row=0, sticky="ew")
returns None
到 frame1
.
而是写成
frame1 = Frame(master)
frame1.grid(row=0, sticky="ew")
这也适用于您的其余标签和框架。始终单独定义它的最佳实践,即使有时看起来您可以摆脱它。
我想要一个包含两个框架的 window。顶部框架包括五个用于用户输入的标签。底部框架包括两个按钮。我得到了这个结果:
很明显是按钮位置不对。在我看来,按钮的网格不起作用。
这是我的代码:
frame1 = Frame(master).grid(row=0, sticky="ew")
frame2 = Frame(master).grid(row=1, sticky="ew")
Label(frame1, text="game name").grid(row=0, column=0)
Label(frame1, text="env").grid(row=1, column=0)
Label(frame1, text="event_source").grid(row=2, column=0)
Label(frame1, text="event_name").grid(row=3, column=0)
Label(frame1, text="game_id").grid(row=4, column=0)
e1 = Entry(frame1).grid(row=0, column=1)
e2 = Entry(frame1).grid(row=1, column=1)
e3 = Entry(frame1).grid(row=2, column=1)
e4 = Entry(frame1).grid(row=3, column=1)
e5 = Entry(frame1).grid(row=4, column=1)
Button(frame2, text='Quit', command=master.destroy).grid(row=0, column=0)
Button(frame2, text='Save', command=lambda: self.show_entry_fields(e1, e2, e3, e4, e5)).grid(row=0, column=3)
您不应在定义框架的同一行上定义网格细节。
frame1 = Frame(master).grid(row=0, sticky="ew")
returns None
到 frame1
.
而是写成
frame1 = Frame(master)
frame1.grid(row=0, sticky="ew")
这也适用于您的其余标签和框架。始终单独定义它的最佳实践,即使有时看起来您可以摆脱它。