from grid import gridboxpackbox root tk(gridbox(rootpackbox(rootbutton(roottext='quit'command=root quitpack(mainloop(this script passes the same parent (the top-level windowto each function in an effort to make both forms appear in one window it also utterly hangs the python process on my machinewithout ever showing any windows at all (on some versions of windowsi've had to resort to ctrl-alt-delete to kill iton othersthe command prompt shell window must sometimes be restarted altogethergeometry manager combinations can be subtle until you get the hang of this to make this example workfor instancewe simply need to isolate the grid box in parent container all its own to keep it away from the packing going on in the root window-as in the following bold alternative coderoot tk(frm frame(rootfrm pack(this works gridbox(frmgridbox must have its own parent in which to grid packbox(rootbutton(roottext='quit'command=root quitpack(mainloop(againtoday you must either pack or grid within one parentbut not both it' possible that this restriction may be lifted in the futurebut it' been long-lived constraintand it seems unlikely to be removedgiven the disparity in the two window manager schemestry your python to be sure making gridded widgets expandable and nowsome practical bitsthe grids we've seen so far are fixed in sizethey do not grow when the enclosing window is resized by user example - implements an unreasonably patriotic input form with both grid and pack againbut adds the configuration steps needed to make all widgets in both windows expand along with their window on resize example - pp \gui\tour\grid\grid py "add label on the top and form resizingfrom tkinter import colors ['red''white''blue'def gridbox(root)label(roottext='grid'grid(columnspan= tkinter tourpart