Reputation: 190
I am developing a simulation software for Mössbauer spectroscopy (Chemistry) but while designing the UI, I am facing problem while resizing the children widget with parent widget. The parent frame fills the extra space when window is maximized but the children widget doesn't changes its size.
from Tkinter import *
import ttk
import tkFileDialog as FileDialog
from PIL import Image, ImageTk
import tkFont
import matplotlib
from numpy import sin, pi
root = Tk()
# Main Container
content = ttk.Frame(root)
bold = tkFont.Font(family='Helvetica', weight='bold')
LeftFrame = ttk.Frame(content, borderwidth=5, relief="groove", width=200)
RightFrame = ttk.Frame(content, borderwidth=5, relief="groove", width=750)
text = Text(LeftFrame, height=40, width=30, padx=5, pady=5)
..... Some Codes .....
# Geometry
LeftFrame.grid(column=0, row=1, rowspan=2, sticky=(N, S, E, W))
RightFrame.grid(column=1, row=1, columnspan=3, rowspan=2, sticky=(N, S, E, W))
namelbl.grid(column=0, row=1, sticky=(N, S, E, W), padx=5)
text.grid(column=0, row=2, sticky=(N, S, E, W))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
content.columnconfigure(0, weight=1)
content.columnconfigure(1, weight=3)
content.columnconfigure(2, weight=3)
content.columnconfigure(3, weight=3)
content.rowconfigure(1, weight=1)
root.state("zoomed")
root.mainloop()
So, my question is How do I change the size of text
widget (children) with LeftFrame
(parent) in the same rate. In my case only LeftFrame
is expanding while text
is constant.
Upvotes: 0
Views: 1006
Reputation: 385870
You aren't giving the sticky
option to the widgets inside the frame, which prevents the widgets from filling the area they have been given. Also, you aren't giving the inner frame rows and columns weights.
Any time you use grid, you should be specifying weights for the rows and columns of the parent widgets. If you have frames inside of frames, each frame is independent and needs its rows and columns configured appropriately.
Upvotes: 2