text item clicked (the one closest to the click spot) :\pp \gui\tourpython canvas-bind py got canvas click canvas clicks got canvas click got object click ( ,first text click got canvas click got object click ( ,second text click got canvas click we'll revisit the notion of events bound to canvases in the pydraw example in where we'll use them to implement feature-rich paint and motion program we'll also return to the canvasdraw script later in this to add tag-based moves and simple animation with time-based toolsso keep this page bookmarked for reference firstthoughlet' follow promising side road to explore another way to lay out widgets within windows--the gridding layout model grids so farwe've mostly been arranging widgets in displays by calling their pack methods-an interface to the packer geometry manager in tkinter we've also used absolute coordinates in canvaseswhich are kind of layout schemetoobut not high-level managed one like the packer this section introduces gridthe most commonly used alternative to the packer we previewed this alternative in when discussing input forms and arranging image thumbnails herewe'll study gridding in its full form as we learned earliertkinter geometry managers work by arranging child widgets within parent container widget (parents are typically frames or top-level windowswhen we ask widget to pack or grid itselfwe're really asking its parent to place it among its siblings with packwe provide constraints or sides and let the geometry manager lay out widgets appropriately with gridwe arrange widgets in rows and columns in their parentas though the parent container widget was table gridding is an entirely distinct geometry management system in tkinter in factat this writingpack and grid are mutually exclusive for widgets that have the same parent-within given parent containerwe can either pack widgets or grid thembut we cannot do both that makes senseif you realize that geometry managers do their jobs as parentsand widget can be arranged by only one geometry manager why gridsat least within one containerthoughthat means you must pick either grid or pack and stick with it so why gridthenin generalgrid is handy for displays in which otherwise unrelated widgets must line up horizontally this includes both tabular displays and form-like displaysarranging input fields in row/column grid fashion can be at least as easy as laying out the display with nested frames tkinter tourpart