Я что-то упускаю из-за того, как размеры распространяются в Tk. Попробуйте это:
from Tkinter import *
root = Tk()
frame1 = Frame(root, border=4, relief=RIDGE)
frame1.grid(sticky=E+W)
frame2 = Frame(root, border=4, relief=RIDGE)
frame2.grid(sticky=E+W)
label1 = Label(frame1, text='short', background='white')
label1.grid(sticky=E+W)
label2 = Label(frame2, text='quite a bit longer', background='white')
label2.grid(sticky=E+W)
root.mainloop()
label1 находится внутри frame1, а label2 находится внутри frame2.
label1 выходит уже, чем label2, что видно на белом фоне. Но frame1 и frame2 имеют одинаковую ширину, что видно по их границам. Я думал, что липкость расширит label1 до той же ширины, что и его родитель.
Если я поместил label1 и label2 в одну и ту же рамку, то label1 получится шириной label2:
frame1 = Frame(root, border=4, relief=RIDGE)
frame1.grid(sticky=E+W)
label1 = Label(frame1, text='short', background='white')
label1.grid(sticky=E+W)
label2 = Label(frame1, text='quite a bit longer', background='white')
label2.grid(sticky=E+W)
Чего мне не хватает? В реальной жизни у меня есть несколько вложенных рамок, которые не расширяются, как хотелось бы.
Спасибо,
Dan