/usr/lib64/python2.7/Demo/tkinter/guido
NameSizeModeActions
AttrDialog.py143400644editdlrm
AttrDialog.pyc187650644editdlrm
AttrDialog.pyo187650644editdlrm
brownian.py10910644editdlrm
brownian.pyc16250644editdlrm
brownian.pyo16250644editdlrm
brownian2.py13790644editdlrm
brownian2.pyc17850644editdlrm
brownian2.pyo17850644editdlrm
canvasevents.py66050755editdlrm
canvasevents.pyc107160644editdlrm
canvasevents.pyo107160644editdlrm
dialog.py32010755editdlrm
dialog.pyc31830644editdlrm
dialog.pyo31830644editdlrm
electrons.py23220755editdlrm
electrons.pyc23860644editdlrm
electrons.pyo23860644editdlrm
hanoi.py46490644editdlrm
hanoi.pyc39130644editdlrm
hanoi.pyo39130644editdlrm
hello.py3310644editdlrm
hello.pyc7010644editdlrm
hello.pyo7010644editdlrm
imagedraw.py5090644editdlrm
imagedraw.pyc11550644editdlrm
imagedraw.pyo11550644editdlrm
imageview.py2050644editdlrm
imageview.pyc5700644editdlrm
imageview.pyo5700644editdlrm
kill.py38840755editdlrm
kill.pyc49280644editdlrm
kill.pyo49280644editdlrm
listtree.py9910644editdlrm
listtree.pyc15330644editdlrm
listtree.pyo15330644editdlrm
ManPage.py68560644editdlrm
ManPage.pyc64230644editdlrm
ManPage.pyo64230644editdlrm
mbox.py74770755editdlrm
mbox.pyc83690644editdlrm
mbox.pyo83690644editdlrm
MimeViewer.py44970755editdlrm
MimeViewer.pyc49490644editdlrm
MimeViewer.pyo49490644editdlrm
newmenubardemo.py12320755editdlrm
newmenubardemo.pyc16240644editdlrm
newmenubardemo.pyo16240644editdlrm
optionmenu.py4410644editdlrm
optionmenu.pyc5940644editdlrm
optionmenu.pyo5940644editdlrm
paint.py18980644editdlrm
paint.pyc22430644editdlrm
paint.pyo22430644editdlrm
rmt.py44910755editdlrm
rmt.pyc50450644editdlrm
rmt.pyo50450644editdlrm
ShellWindow.py41720644editdlrm
ShellWindow.pyc56010644editdlrm
ShellWindow.pyo56010644editdlrm
solitaire.py177890755editdlrm
solitaire.pyc208970644editdlrm
solitaire.pyo208970644editdlrm
sortvisu.py193460755editdlrm
sortvisu.pyc237390644editdlrm
sortvisu.pyo237390644editdlrm
ss1.py261830644editdlrm
ss1.pyc324270644editdlrm
ss1.pyo318180644editdlrm
svkill.py48640755editdlrm
svkill.pyc59410644editdlrm
svkill.pyo59410644editdlrm
switch.py15590644editdlrm
switch.pyc29210644editdlrm
switch.pyo29210644editdlrm
tkman.py90040755editdlrm
tkman.pyc90890644editdlrm
tkman.pyo90890644editdlrm
wish.py6230644editdlrm
wish.pyc7370644editdlrm
wish.pyo7370644editdlrm
Edit: /usr/lib64/python2.7/Demo/tkinter/guido/rmt.py (4491B)
#! /usr/bin/python2.7 # A Python program implementing rmt, an application for remotely # controlling other Tk applications. # Cf. Ousterhout, Tcl and the Tk Toolkit, Figs. 27.5-8, pp. 273-276. # Note that because of forward references in the original, we # sometimes delay bindings until after the corresponding procedure is # defined. We also introduce names for some unnamed code blocks in # the original because of restrictions on lambda forms in Python. # XXX This should be written in a more Python-like style!!! from Tkinter import * import sys # 1. Create basic application structure: menu bar on top of # text widget, scrollbar on right. root = Tk() tk = root.tk mBar = Frame(root, relief=RAISED, borderwidth=2) mBar.pack(fill=X) f = Frame(root) f.pack(expand=1, fill=BOTH) s = Scrollbar(f, relief=FLAT) s.pack(side=RIGHT, fill=Y) t = Text(f, relief=RAISED, borderwidth=2, yscrollcommand=s.set, setgrid=1) t.pack(side=LEFT, fill=BOTH, expand=1) t.tag_config('bold', font='-Adobe-Courier-Bold-R-Normal-*-120-*') s['command'] = t.yview root.title('Tk Remote Controller') root.iconname('Tk Remote') # 2. Create menu button and menus. file = Menubutton(mBar, text='File', underline=0) file.pack(side=LEFT) file_m = Menu(file) file['menu'] = file_m file_m_apps = Menu(file_m, tearoff=0) file_m.add_cascade(label='Select Application', underline=0, menu=file_m_apps) file_m.add_command(label='Quit', underline=0, command=sys.exit) # 3. Create bindings for text widget to allow commands to be # entered and information to be selected. New characters # can only be added at the end of the text (can't ever move # insertion point). def single1(e): x = e.x y = e.y t.setvar('tk_priv(selectMode)', 'char') t.mark_set('anchor', At(x, y)) # Should focus W t.bind('<1>', single1) def double1(e): x = e.x y = e.y t.setvar('tk_priv(selectMode)', 'word') t.tk_textSelectTo(At(x, y)) t.bind('', double1) def triple1(e): x = e.x y = e.y t.setvar('tk_priv(selectMode)', 'line') t.tk_textSelectTo(At(x, y)) t.bind('', triple1) def returnkey(e): t.insert(AtInsert(), '\n') invoke() t.bind('', returnkey) def controlv(e): t.insert(AtInsert(), t.selection_get()) t.yview_pickplace(AtInsert()) if t.index(AtInsert())[-2:] == '.0': invoke() t.bind('', controlv) # 4. Procedure to backspace over one character, as long as # the character isn't part of the prompt. def backspace(e): if t.index('promptEnd') != t.index('insert - 1 char'): t.delete('insert - 1 char', AtInsert()) t.yview_pickplace(AtInsert()) t.bind('', backspace) t.bind('', backspace) t.bind('', backspace) # 5. Procedure that's invoked when return is typed: if # there's not yet a complete command (e.g. braces are open) # then do nothing. Otherwise, execute command (locally or # remotely), output the result or error message, and issue # a new prompt. def invoke(): cmd = t.get('promptEnd + 1 char', AtInsert()) if t.getboolean(tk.call('info', 'complete', cmd)): # XXX if app == root.winfo_name(): msg = tk.call('eval', cmd) # XXX else: msg = t.send(app, cmd) if msg: t.insert(AtInsert(), msg + '\n') prompt() t.yview_pickplace(AtInsert()) def prompt(): t.insert(AtInsert(), app + ': ') t.mark_set('promptEnd', 'insert - 1 char') t.tag_add('bold', 'insert linestart', 'promptEnd') # 6. Procedure to select a new application. Also changes # the prompt on the current command line to reflect the new # name. def newApp(appName): global app app = appName t.delete('promptEnd linestart', 'promptEnd') t.insert('promptEnd', appName + ':') t.tag_add('bold', 'promptEnd linestart', 'promptEnd') def fillAppsMenu(): file_m_apps.add('command') file_m_apps.delete(0, 'last') names = root.winfo_interps() names = list(names) names.sort() for name in names: try: root.send(name, 'winfo name .') except TclError: # Inoperative window -- ignore it pass else: file_m_apps.add_command( label=name, command=lambda name=name: newApp(name)) file_m_apps['postcommand'] = fillAppsMenu mBar.tk_menuBar(file) # 7. Miscellaneous initialization. app = root.winfo_name() prompt() t.focus() root.mainloop()