mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #! /usr/bin/env 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()
 | 
