stat popupwindow('pp demo info'stat protocol('wm_delete_window'lambda: ignore wm delete info label(stattext 'select demo'font=('courier' 'italic')padx= pady= bg='lightblue'info pack(expand=yesfill=both###############################################################################add launcher buttons with callback objects ###############################################################################from pp gui texteditor texteditor import texteditormainpopup demo launcher class class launcher(launchmodes portablelauncher)def announce(selftext)info config(text=textdef viewer(sources)for filename in sourcestexteditormainpopup(rootfilenameloadencode='utf- 'use wrapped launcher class customize to set gui label as pop up in this process else pyedit may ask eachdef demobutton(namewhatdoitcode)""add buttons that runs doit command-lineand open all files in codedoit button retains state in an objectcode in an enclosing scope""rowfrm frame(rootrowfrm pack(side=topexpand=yesfill=bothb button(rowfrmbg='navy'fg='white'relief=ridgeborder= config(text=namewidth= command=launcher(whatdoit) pack(side=leftexpand=yesfill=bothb button(rowfrmbg='beige'fg='navy' config(text='code'command=(lambdaviewer(code)) pack(side=leftfill=both###############################################################################tkinter gui demos some use network connections ###############################################################################demobutton(name='pyedit'what='text file editor'edit myself doit='gui/texteditor/texteditor py pydemos pyw'assume in cwd code=['launchmodes py''tools/find py''gui/tour/scrolledlist py'show in pyedit viewer 'gui/shellgui/formrows py'last top of stacking 'gui/tools/guimaker py''gui/texteditor/textconfig py''gui/texteditor/texteditor py'] gui coding techniques