Robert Heller wrote:
> It is a coding error to use more than one geometry manager in any
> given container.
This statement is false. There are definitly proper uses of more
than one geometry manager in a single container. For example, to
make a toplevel window that matches the ttk style I usually place a
ttk::frame in the toplevel and subsequently grid other widgets in
the toplevel. This works perfectly. And there is no reason why the
same thing couldn't be done with pack instead of place.
It is however a coding error to have two geometry managers dictate
the size of the master at the same time. But if you switch off
propagation for one of the managers, it is no problem to use both
pack and grid in the same container. So this works (even in Tk 8.6):
pack propagate . 0
pack [ttk::frame .bg] -fill both -expand 1
grid [ttk::label .l -text "Hello World"] -padx 20 -pady 20
Without seeing the code, the fact that the OP had some code in an
older Tk version that did not freeze the display suggests that this
is what the code was doing all along, but probaly not in that order.
Propagation only kicks in when the event loop is allowed to run. So
in the older Tk it was possible to first grid and pack widgets and
then turn off propagation. Tk 8.6 will produce the error mentioned
in the subject before the code gets to the statement that turns off
propagation.
If my understanding of the problem is correct, the simple fix will
be to find the [grid propagate 0] or [pack propagate 0] commands and
move them up a few lines.
Schelte.