X7ROOT File Manager
Current Path:
/usr/lib64/python2.7/Demo/tkinter/guido
usr
/
lib64
/
python2.7
/
Demo
/
tkinter
/
guido
/
📁
..
📄
AttrDialog.py
(14 KB)
📄
AttrDialog.pyc
(18.33 KB)
📄
AttrDialog.pyo
(18.33 KB)
📄
ManPage.py
(6.7 KB)
📄
ManPage.pyc
(6.27 KB)
📄
ManPage.pyo
(6.27 KB)
📄
MimeViewer.py
(4.39 KB)
📄
MimeViewer.pyc
(4.83 KB)
📄
MimeViewer.pyo
(4.83 KB)
📄
ShellWindow.py
(4.07 KB)
📄
ShellWindow.pyc
(5.47 KB)
📄
ShellWindow.pyo
(5.47 KB)
📄
brownian.py
(1.07 KB)
📄
brownian.pyc
(1.59 KB)
📄
brownian.pyo
(1.59 KB)
📄
brownian2.py
(1.35 KB)
📄
brownian2.pyc
(1.74 KB)
📄
brownian2.pyo
(1.74 KB)
📄
canvasevents.py
(6.45 KB)
📄
canvasevents.pyc
(10.46 KB)
📄
canvasevents.pyo
(10.46 KB)
📄
dialog.py
(3.13 KB)
📄
dialog.pyc
(3.11 KB)
📄
dialog.pyo
(3.11 KB)
📄
electrons.py
(2.27 KB)
📄
electrons.pyc
(2.33 KB)
📄
electrons.pyo
(2.33 KB)
📄
hanoi.py
(4.54 KB)
📄
hanoi.pyc
(3.82 KB)
📄
hanoi.pyo
(3.82 KB)
📄
hello.py
(331 B)
📄
hello.pyc
(701 B)
📄
hello.pyo
(701 B)
📄
imagedraw.py
(509 B)
📄
imagedraw.pyc
(1.13 KB)
📄
imagedraw.pyo
(1.13 KB)
📄
imageview.py
(205 B)
📄
imageview.pyc
(570 B)
📄
imageview.pyo
(570 B)
📄
kill.py
(3.79 KB)
📄
kill.pyc
(4.81 KB)
📄
kill.pyo
(4.81 KB)
📄
listtree.py
(991 B)
📄
listtree.pyc
(1.5 KB)
📄
listtree.pyo
(1.5 KB)
📄
mbox.py
(7.3 KB)
📄
mbox.pyc
(8.17 KB)
📄
mbox.pyo
(8.17 KB)
📄
newmenubardemo.py
(1.2 KB)
📄
newmenubardemo.pyc
(1.59 KB)
📄
newmenubardemo.pyo
(1.59 KB)
📄
optionmenu.py
(441 B)
📄
optionmenu.pyc
(594 B)
📄
optionmenu.pyo
(594 B)
📄
paint.py
(1.85 KB)
📄
paint.pyc
(2.19 KB)
📄
paint.pyo
(2.19 KB)
📄
rmt.py
(4.39 KB)
📄
rmt.pyc
(4.93 KB)
📄
rmt.pyo
(4.93 KB)
📄
solitaire.py
(17.37 KB)
📄
solitaire.pyc
(20.41 KB)
📄
solitaire.pyo
(20.41 KB)
📄
sortvisu.py
(18.89 KB)
📄
sortvisu.pyc
(23.18 KB)
📄
sortvisu.pyo
(23.18 KB)
📄
ss1.py
(25.57 KB)
📄
ss1.pyc
(31.67 KB)
📄
ss1.pyo
(31.07 KB)
📄
svkill.py
(4.75 KB)
📄
svkill.pyc
(5.8 KB)
📄
svkill.pyo
(5.8 KB)
📄
switch.py
(1.52 KB)
📄
switch.pyc
(2.85 KB)
📄
switch.pyo
(2.85 KB)
📄
tkman.py
(8.79 KB)
📄
tkman.pyc
(8.88 KB)
📄
tkman.pyo
(8.88 KB)
📄
wish.py
(623 B)
📄
wish.pyc
(737 B)
📄
wish.pyo
(737 B)
Editing: ShellWindow.py
import os import sys import string from Tkinter import * from ScrolledText import ScrolledText from Dialog import Dialog import signal BUFSIZE = 512 class ShellWindow(ScrolledText): def __init__(self, master=None, shell=None, **cnf): if not shell: try: shell = os.environ['SHELL'] except KeyError: shell = '/bin/sh' shell = shell + ' -i' args = string.split(shell) shell = args[0] apply(ScrolledText.__init__, (self, master), cnf) self.pos = '1.0' self.bind('<Return>', self.inputhandler) self.bind('<Control-c>', self.sigint) self.bind('<Control-t>', self.sigterm) self.bind('<Control-k>', self.sigkill) self.bind('<Control-d>', self.sendeof) self.pid, self.fromchild, self.tochild = spawn(shell, args) self.tk.createfilehandler(self.fromchild, READABLE, self.outputhandler) def outputhandler(self, file, mask): data = os.read(file, BUFSIZE) if not data: self.tk.deletefilehandler(file) pid, sts = os.waitpid(self.pid, 0) print 'pid', pid, 'status', sts self.pid = None detail = sts>>8 cause = sts & 0xff if cause == 0: msg = "exit status %d" % detail else: msg = "killed by signal %d" % (cause & 0x7f) if cause & 0x80: msg = msg + " -- core dumped" Dialog(self.master, text=msg, title="Exit status", bitmap='warning', default=0, strings=('OK',)) return self.insert(END, data) self.pos = self.index("end - 1 char") self.yview_pickplace(END) def inputhandler(self, *args): if not self.pid: self.no_process() return "break" self.insert(END, "\n") line = self.get(self.pos, "end - 1 char") self.pos = self.index(END) os.write(self.tochild, line) return "break" def sendeof(self, *args): if not self.pid: self.no_process() return "break" os.close(self.tochild) return "break" def sendsig(self, sig): if not self.pid: self.no_process() return "break" os.kill(self.pid, sig) return "break" def sigint(self, *args): return self.sendsig(signal.SIGINT) def sigquit(self, *args): return self.sendsig(signal.SIGQUIT) def sigterm(self, *args): return self.sendsig(signal.SIGTERM) def sigkill(self, *args): return self.sendsig(signal.SIGKILL) def no_process(self): Dialog(self.master, text="No active process", title="No process", bitmap='error', default=0, strings=('OK',)) MAXFD = 100 # Max number of file descriptors (os.getdtablesize()???) def spawn(prog, args): p2cread, p2cwrite = os.pipe() c2pread, c2pwrite = os.pipe() pid = os.fork() if pid == 0: # Child for i in 0, 1, 2: try: os.close(i) except os.error: pass if os.dup(p2cread) <> 0: sys.stderr.write('popen2: bad read dup\n') if os.dup(c2pwrite) <> 1: sys.stderr.write('popen2: bad write dup\n') if os.dup(c2pwrite) <> 2: sys.stderr.write('popen2: bad write dup\n') os.closerange(3, MAXFD) try: os.execvp(prog, args) finally: sys.stderr.write('execvp failed\n') os._exit(1) os.close(p2cread) os.close(c2pwrite) return pid, c2pread, p2cwrite def test(): shell = string.join(sys.argv[1:]) root = Tk() root.minsize(1, 1) if shell: w = ShellWindow(root, shell=shell) else: w = ShellWindow(root) w.pack(expand=1, fill=BOTH) w.focus_set() w.tk.mainloop() if __name__ == '__main__': test()
Upload File
Create Folder