I have a frame that I fixed the size of using the grid_propagate() method. I'd like to center a frame within this frame. How do I go about this?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- Evil ctypes hack in python
- Correctly parse PDF paragraphs with Python
pack it to fill in all directions. Add padding as needed.
Or, use place which lets you use relative or absolute positioning. You can use a relative x/y of .5/.5 and an anchor of "c" (center).
If you want to center a widget (like a frame) inside a frame, the easiest way to do it is via
.grid()
. If you use.pack()
, you end up stuck along one of the edges, sincepack()
has theside
keyword.If you use
.place()
, then you're stuck forcing the size of the outer frame (which normally you don't have to do, but you've already done it, so it's not an issue), becauseplaced
widgets aren't detected when the frame autosizes like withpacked
orgridded
widgets. I'm not sure why, but that's the way it is.So, in general, the best way to center a widget inside a frame is to
grid
the widget into the frame. (Thesticky
option defaults to CENTER.) And then, if you want to be able to resize the outer frame and have the widget stay centered, you need to allow the outer frame's cell to expand/grow. You would do this via the.grid_rowconfigure()
etc commands. So, an example might be: