【发布时间】:2012-03-18 15:24:56
【问题描述】:
我正在尝试创建一个 Tkinter 布局,它的标签和输入字段在多个 LabelFrame 框中垂直对齐。
下面是一些简化的代码:
#!/usr/bin/python
from Tkinter import *
win = Frame()
win.grid(sticky=N+S+E+W)
frame_a = LabelFrame(win, text='Top frame', padx=5, pady=5)
frame_b = LabelFrame(win, text='Bottom frame', padx=5, pady=5)
frame_a.grid(sticky=E+W)
frame_b.grid(sticky=E+W)
for frame in frame_a, frame_b:
for col in 0, 1, 2:
frame.columnconfigure(col, weight=1)
Label(win, text='Hi').grid(in_=frame_a, sticky=W)
Label(win, text='Longer label, shorter box').grid(in_=frame_b, sticky=W)
Entry(win).grid(in_=frame_a, row=0, column=1, sticky=W)
Entry(win, width=5).grid(in_=frame_b, row=0, column=1, sticky=W)
win.mainloop()
上面的代码生成一个如下所示的窗口:
而我正在寻找一些对齐字段的方法,使窗口看起来更像这样(感谢 MS Paint):
我已经尝试过 in_ 到 grid() 的参数,但没有取得很大的成就,我想不出还有什么可以尝试的。
【问题讨论】:
标签: python user-interface tkinter