Reputation: 1261
I am learning Python GUI programming with tkinter. I wanted to place a frame in my root window using the grid geometry manager, specify a height, and have the frame expand to the full width of the root window. I tried to do this using the sticky options but this does not produce the desired result. How do I make the frame expand to the full width of the window without manually specifying the width?
Code:
import tkinter
import tkinter.ttk
win = tkinter.Tk()
win.geometry('600x600')
frame = tkinter.Frame(win, height=300)
frame.configure(bg='red')
frame.grid(column=0, sticky=tkinter.E + tkinter.W)
win.mainloop()
Upvotes: 2
Views: 7806
Reputation: 377
I believe this code will achieve the result you are looking for (note that call to grid_columnconfigure is on win, which is the parent of your frame widget):
import tkinter
import tkinter.ttk
win = tkinter.Tk()
win.geometry('600x600')
frame = tkinter.Frame(win, bg='red', height=300)
frame.grid(row=0, column=0, sticky='ew')
win.grid_columnconfigure(0,weight=1)
win.mainloop()
Upvotes: 5