Package nltk_lite :: Package contrib :: Package mit :: Package six863 :: Package parse :: Module treeview
[hide private]
[frames] | no frames]

Source Code for Module nltk_lite.contrib.mit.six863.parse.treeview

 1  import Tkinter 
 2  from nltk_lite.draw import TreeWidget 
 3  from nltk_lite.draw import CanvasFrame 
 4   
 5  """A class that draws parse trees in a simple Tk window.""" 
 6   
7 -class TreeView:
8 - def __init__(self, trees, root=None):
9 if len(trees) == 0: 10 print "No trees to display." 11 return 12 13 newroot = False 14 if root is None: 15 root = Tkinter.Tk() 16 window = root 17 newroot = True 18 else: 19 window = Tkinter.Toplevel(root) 20 21 window.title("Parse Tree") 22 window.geometry("600x400") 23 self.cf = CanvasFrame(window) 24 self.cf.pack(side='top', expand=1, fill='both') 25 buttons = Tkinter.Frame(window) 26 buttons.pack(side='bottom', fill='x') 27 28 self.spin = Tkinter.Spinbox(buttons, from_=1, to=len(trees), 29 command=self.showtree, width=3) 30 if len(trees) > 1: self.spin.pack(side='left') 31 self.label = Tkinter.Label(buttons, text="of %d" % len(trees)) 32 if len(trees) > 1: self.label.pack(side='left') 33 self.done = Tkinter.Button(buttons, text="Done", command=window.destroy) 34 self.done.pack(side='right') 35 self.printps = Tkinter.Button(buttons, text="Print to Postscript", command=self.cf.print_to_file) 36 self.printps.pack(side='right') 37 38 self.trees = trees 39 self.treeWidget = None 40 self.showtree() 41 if newroot: root.mainloop()
42
43 - def showtree(self):
44 try: n = int(self.spin.get()) 45 except ValueError: n=1 46 if self.treeWidget is not None: self.cf.destroy_widget(self.treeWidget) 47 self.treeWidget = TreeWidget(self.cf.canvas(), 48 self.trees[n-1], draggable=1, shapeable=1) 49 self.cf.add_widget(self.treeWidget, 0, 0)
50