views:

1398

answers:

1

This is the code that's giving me trouble.

f = Frame(root, width=1000, bg="blue")
f.pack(fill=X, expand=True)

l = Label(f, text="hi", width=10, bg="red", fg="white")
l.pack()

If I comment out the lines with the Label, the Frame displays with the right width. However, adding the Label seems to shrink the Frame down to the Label's size. Is there a way to prevent that from happening?

+2  A: 

By default, tk frames shrink or grow to fit their contents, which is what you want 99% of the time. The term that describes this feature is "geometry propagation". There is a command to turn geometry propagation on or off.

Since you are using pack, the syntax would be:

f.pack_propagate(0)

(or maybe "root.pack_propagate(0)", depending on which widget(s) you actually want to affect)

Bryan Oakley