methodsx [ [ win [ [ the two classes in this module demonstrate how easy it is to wrap tkinter interfaces to make them easier to usethey completely abstract away many of the tricky parts of radio button and check button bars for instanceyou can forget about linked variable details completely if you use such higher-level classes instead--simply make objects with option lists and call their state methods later if you follow this path to its logical conclusionyou might just wind up with higher-level widget library on the order of the pmw package mentioned in on the other handthese classes are still not universally applicableif you need to run actions when these buttons are pressedfor instanceyou'll need to use other high-level interfaces luckilypython/tkinter already provides plenty later in this bookwe'll again use the widget combination and reuse techniques introduced in this section to construct larger guis like text editorsemail clients and calculators for nowthis first in the widget tour is about to make one last stop--the photo shop images in tkintergraphical images are displayed by creating independent photoimage or bitmapimage objectsand then attaching those image objects to other widgets via image attribute settings buttonslabelscanvasestextand menus can display images by associating prebuilt image objects in this way to illustrateexample - throws picture up on button example - pp \gui\tour\imgbutton py gifdir /gifs/from tkinter import win tk(igm photoimage(file=gifdir "ora-pp gif"button(winimage=igmpack(win mainloop( could try to come up with simpler examplebut it would be tough--all this script does is make tkinter photoimage object for gif file stored in another directoryand associate it with button widget' image option the result is captured in figure - tkinter tourpart