/
usr
/
lib64
/
python2.7
/
Demo
/
tkinter
/
guido
/
/usr/lib64/python2.7/Demo/tkinter/guido
mkdir
upload
Name
Size
Mode
Actions
AttrDialog.py
14340
0644
edit
dl
rm
AttrDialog.pyc
18765
0644
edit
dl
rm
AttrDialog.pyo
18765
0644
edit
dl
rm
brownian.py
1091
0644
edit
dl
rm
brownian.pyc
1625
0644
edit
dl
rm
brownian.pyo
1625
0644
edit
dl
rm
brownian2.py
1379
0644
edit
dl
rm
brownian2.pyc
1785
0644
edit
dl
rm
brownian2.pyo
1785
0644
edit
dl
rm
canvasevents.py
6605
0755
edit
dl
rm
canvasevents.pyc
10716
0644
edit
dl
rm
canvasevents.pyo
10716
0644
edit
dl
rm
dialog.py
3201
0755
edit
dl
rm
dialog.pyc
3183
0644
edit
dl
rm
dialog.pyo
3183
0644
edit
dl
rm
electrons.py
2322
0755
edit
dl
rm
electrons.pyc
2386
0644
edit
dl
rm
electrons.pyo
2386
0644
edit
dl
rm
hanoi.py
4649
0644
edit
dl
rm
hanoi.pyc
3913
0644
edit
dl
rm
hanoi.pyo
3913
0644
edit
dl
rm
hello.py
331
0644
edit
dl
rm
hello.pyc
701
0644
edit
dl
rm
hello.pyo
701
0644
edit
dl
rm
imagedraw.py
509
0644
edit
dl
rm
imagedraw.pyc
1155
0644
edit
dl
rm
imagedraw.pyo
1155
0644
edit
dl
rm
imageview.py
205
0644
edit
dl
rm
imageview.pyc
570
0644
edit
dl
rm
imageview.pyo
570
0644
edit
dl
rm
kill.py
3884
0755
edit
dl
rm
kill.pyc
4928
0644
edit
dl
rm
kill.pyo
4928
0644
edit
dl
rm
listtree.py
991
0644
edit
dl
rm
listtree.pyc
1533
0644
edit
dl
rm
listtree.pyo
1533
0644
edit
dl
rm
ManPage.py
6856
0644
edit
dl
rm
ManPage.pyc
6423
0644
edit
dl
rm
ManPage.pyo
6423
0644
edit
dl
rm
mbox.py
7477
0755
edit
dl
rm
mbox.pyc
8369
0644
edit
dl
rm
mbox.pyo
8369
0644
edit
dl
rm
MimeViewer.py
4497
0755
edit
dl
rm
MimeViewer.pyc
4949
0644
edit
dl
rm
MimeViewer.pyo
4949
0644
edit
dl
rm
newmenubardemo.py
1232
0755
edit
dl
rm
newmenubardemo.pyc
1624
0644
edit
dl
rm
newmenubardemo.pyo
1624
0644
edit
dl
rm
optionmenu.py
441
0644
edit
dl
rm
optionmenu.pyc
594
0644
edit
dl
rm
optionmenu.pyo
594
0644
edit
dl
rm
paint.py
1898
0644
edit
dl
rm
paint.pyc
2243
0644
edit
dl
rm
paint.pyo
2243
0644
edit
dl
rm
rmt.py
4491
0755
edit
dl
rm
rmt.pyc
5045
0644
edit
dl
rm
rmt.pyo
5045
0644
edit
dl
rm
ShellWindow.py
4172
0644
edit
dl
rm
ShellWindow.pyc
5601
0644
edit
dl
rm
ShellWindow.pyo
5601
0644
edit
dl
rm
solitaire.py
17789
0755
edit
dl
rm
solitaire.pyc
20897
0644
edit
dl
rm
solitaire.pyo
20897
0644
edit
dl
rm
sortvisu.py
19346
0755
edit
dl
rm
sortvisu.pyc
23739
0644
edit
dl
rm
sortvisu.pyo
23739
0644
edit
dl
rm
ss1.py
26183
0644
edit
dl
rm
ss1.pyc
32427
0644
edit
dl
rm
ss1.pyo
31818
0644
edit
dl
rm
svkill.py
4864
0755
edit
dl
rm
svkill.pyc
5941
0644
edit
dl
rm
svkill.pyo
5941
0644
edit
dl
rm
switch.py
1559
0644
edit
dl
rm
switch.pyc
2921
0644
edit
dl
rm
switch.pyo
2921
0644
edit
dl
rm
tkman.py
9004
0755
edit
dl
rm
tkman.pyc
9089
0644
edit
dl
rm
tkman.pyo
9089
0644
edit
dl
rm
wish.py
623
0644
edit
dl
rm
wish.pyc
737
0644
edit
dl
rm
wish.pyo
737
0644
edit
dl
rm
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('<Double-1>', double1) def triple1(e): x = e.x y = e.y t.setvar('tk_priv(selectMode)', 'line') t.tk_textSelectTo(At(x, y)) t.bind('<Triple-1>', triple1) def returnkey(e): t.insert(AtInsert(), '\n') invoke() t.bind('<Return>', returnkey) def controlv(e): t.insert(AtInsert(), t.selection_get()) t.yview_pickplace(AtInsert()) if t.index(AtInsert())[-2:] == '.0': invoke() t.bind('<Control-v>', 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>', backspace) t.bind('<Control-h>', backspace) t.bind('<Delete>', 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()
Save
cmd:
run