diff options
author | Guido van Rossum <guido@python.org> | 1995-01-10 17:05:37 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1995-01-10 17:05:37 (GMT) |
commit | dfa70a9fbc23bfef2badb6b17639354c4a9aeda8 (patch) | |
tree | fb4775eb6039fb91dbbb50ba7c105e54490fe8fe /Demo/tkinter/www/www9.py | |
parent | ca9b323c525d2e5975ca0fbedd158a722110ca9a (diff) | |
download | cpython-dfa70a9fbc23bfef2badb6b17639354c4a9aeda8.zip cpython-dfa70a9fbc23bfef2badb6b17639354c4a9aeda8.tar.gz cpython-dfa70a9fbc23bfef2badb6b17639354c4a9aeda8.tar.bz2 |
initial checkin of www Tk examples
Diffstat (limited to 'Demo/tkinter/www/www9.py')
-rwxr-xr-x | Demo/tkinter/www/www9.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Demo/tkinter/www/www9.py b/Demo/tkinter/www/www9.py new file mode 100755 index 0000000..60b46ed --- /dev/null +++ b/Demo/tkinter/www/www9.py @@ -0,0 +1,60 @@ +#! /usr/local/bin/python + +# www9.py -- display the contents of a URL in a Text widget +# - set window title +# - make window resizable +# - update display while reading +# - vertical scroll bar +# - rewritten as class + +import sys +import urllib +from Tkinter import * + +def main(): + if len(sys.argv) != 2 or sys.argv[1][:1] == '-': + print "Usage:", sys.argv[0], "url" + sys.exit(2) + url = sys.argv[1] + viewer = Viewer() + viewer.load(url) + viewer.go() + +class Viewer: + + def __init__(self): + # Create root window + self.root = Tk() + self.root.minsize(1, 1) + + # The Scrollbar *must* be created first + self.vbar = Scrollbar(self.root) + self.vbar.pack({'fill': 'y', 'side': 'right'}) + self.text = Text(self.root) + self.text.pack({'expand': 1, 'fill': 'both', 'side': 'left'}) + + # Link Text widget and Scrollbar + self.text['yscrollcommand'] = (self.vbar, 'set') + self.vbar['command'] = (self.text, 'yview') + + def load(self, url): + # Load a new URL into the window + fp = urllib.urlopen(url) + + self.root.title(url) + + self.text.delete('0.0', 'end') + + while 1: + line = fp.readline() + if not line: break + self.text.insert('end', line) + self.root.update_idletasks() + + fp.close() + + def go(self): + # Start Tk main loop + self.root.mainloop() + +main() |