I have been working on a note taking program for myself and it is going well however I have had a lot of problems with getting all my widgets placed where I want them using the .pack()
or .grid()
options.
After looking around I found that I could use the .place()
option instead. Before I decided to use .place()
I found countless forum post saying "don't use .place()
!".
I was at a stand still with my other options so I decided to give .place()
a try. It turns out .place()
is exactly what I needed to fix my layout issues and I just don't understand why everyone is hating on .place()
so much.
Is there something inherently wrong with .place()
? Or do people just prefer to use .pack()
and .grid()
for some practical reason other than ease of use?
I'm not sure what evidence you have that says everyone says not to use place
. I suspect if you're judging by stackoverflow posts, you're mostly reading my opinion a hundred times rather than a hundred different opinions.
I recommend against place
mainly because it requires more work to make a UI that is responsive to changes in fonts, resolutions, and window sizes. While it's possible to write a GUI that uses place and is responsive to those things, it requires a lot of work to get right.
One advantage that both pack
and grid
have over place
is that they allow tkinter to properly configure the size of the root and Toplevel
windows. With place
you must hard-code a size. Tkinter is remarkably good at making windows to be the exact right size without you having to decide on explicit sizes.
In addition, long term maintenance of applications that use place
is difficult. If you want to add a new widget, you will almost certainly have to adjust every other widget. With grid
and pack
it's much easier to add and remove widgets without having to change the layout of all of the other widgets. If I've learned anything over years of using tk and tkinter is that my widget layout changes a lot during development.
place
is mostly useful for edge cases. For example, if you want to center a single widget inside another widget, place
is fantastic. Also, if you want to place a widget such that it is independent of other widgets, place
is great for that too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With