canvas move('bubbles'diffxdiffythis makes three ovals and moves them at the same time by associating them all with the same tag name many objects can have the same tagmany tags can refer to the same objectand each tag can be individually configured and processed as in textcanvas widgets have predefined tag names toothe tag all refers to all objects on the canvasand current refers to whatever object is under the mouse cursor besides asking for an object under the mouseyou can also search for objects with the find_ canvas methodscanvas find_closest( , )for instancereturns tuple whose first item is the identifier of the closest object to the supplied coordinates--handy after you've received coordinates in general mouse-click event callback we'll revisit the notion of canvas tags by example later in this (see the animation scripts near the end if you need more details right awayas usualcanvases support additional operations and options that we don' have space to cover in finite text like this ( the canvas postscript method lets you save the canvas in postscript filesee later examples in this booksuch as pydrawfor more detailsand consult other tk or tkinter references for an exhaustive list of canvas object options scrolling canvases one canvas-related operation is so commonthoughthat it does merit look here as demonstrated in example - scroll bars can be cross-linked with canvas using the same protocols we used to add them to listboxes and text earlierbut with few unique requirements example - pp \gui\tour\scrolledcanvas py " simple vertically-scrollable canvas component and demofrom tkinter import class scrolledcanvas(frame)def __init__(selfparent=nonecolor='brown')frame __init__(selfparentself pack(expand=yesfill=bothcanv canvas(selfbg=colorrelief=sunkencanv config(width= height= canv config(scrollregion=( )canv config(highlightthickness= make me expandable display area size canvas size corners no pixels to border sbar scrollbar(selfsbar config(command=canv yviewcanv config(yscrollcommand=sbar setsbar pack(side=rightfill=ycanv pack(side=leftexpand=yesfill=bothxlink sbar and canv move one moves other pack first=clip last canv clipped first self fillcontent(canvcanv bind(''self ondoubleclickset event handler tkinter tourpart