exercises should also point out that there is more to gridding than we have time to present fully here for instanceby creating subframes that have grids of their ownwe can build up more sophisticated layouts as component hierarchies in much the same way as nested frames arranged with the packer for nowlet' move on to one last widget survey topic time toolsthreadsand animation the last stop on our widget tour is perhaps the most unique tkinter also comes with handful of tools that have to do with the event-driven programming modelnot graphics displayed on computer screen some gui applications need to perform background activities periodically for exampleto "blinka widget' appearancewe' like to register callback handler to be invoked at regular time intervals similarlyit' not good idea to let long-running file operation block other activity in guiif the event loop could be forced to update periodicallythe gui could remain responsive tkinter comes with tools for both scheduling such delayed actions and forcing screen updateswidget after(millisecondsfunction*argsthis tool schedules the function to be called once by the gui' event processing system after number of milliseconds this form of the call does not pause the program--the callback function is scheduled to be run later from the normal tkinter event loopbut the calling program continues normallyand the gui remains active while the function call is pending as also discussed in unlike the threading module' timer objectwidget after events are dispatched in the main gui thread and so can freely update the gui the function event handler argument can be any callable python objecta functionbound methodlambda and so on the milliseconds timer duration argument is an integer which can be used to specify both fractions and multiples of secondits value divided by , gives equivalent seconds any args arguments are passed by position to function when it is later called in practicea lambda can be used in place of individually-listed arguments to make the association of arguments to function explicitbut that is not required when the function is methodobject state information (attributesmight also provide its data instead of listed arguments the after method returns an id that can be passed to after_cancel to cancel the callback since this method is so commonly usedi'll say more about it by example in moment widget after(millisecondsthis tool pauses the calling program for number of milliseconds--for examplean argument of , pauses the caller for seconds this is essentially equivalent to python' library function time sleep(seconds)and both calls can be used to tkinter tourpart