Example #1
0
 def __init__(self, root, nlists=2):
     assert nlists >= 1
     self.root = root
     self.nlists = nlists
     self.path = []
     # create top
     self.top = top = ListedToplevel(root)
     top.protocol("WM_DELETE_WINDOW", self.close)
     top.bind("<Escape>", self.close)
     self.settitle()
     # create frames and separators in between
     self.frames = []
     self.separators = []
     last = top
     for i in range(nlists - 1):
         sepa = HSeparator(last)
         self.separators.append(sepa)
         frame, last = sepa.parts()
         self.frames.append(frame)
     self.frames.append(last)
     # create labels and lists
     self.labels = []
     self.lists = []
     for i in range(nlists):
         frame = self.frames[i]
         label = Label(frame,
                       text=self.subtitle(i),
                       relief="groove",
                       borderwidth=2)
         label.pack(fill="x")
         self.labels.append(label)
         list = ScrolledList(frame,
                             width=self.width(i),
                             height=self.height(i))
         self.lists.append(list)
         list.on_select = \
             lambda index, i=i, self=self: self.on_select(index, i)
         list.on_double = \
             lambda index, i=i, self=self: self.on_double(index, i)
     # fill leftmost list (rest get filled on demand)
     self.fill(0)
     # XXX one after_idle isn't enough; two are...
     top.after_idle(self.call_pack_propagate_1)
Example #2
0
# One or more ScrolledLists with HSeparators between them.