Advertisement
Uno-Dan

Tee Sorting

Sep 10th, 2019
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1.     def sort(self, col, reverse):
  2.  
  3.         def do_sort(_col, _reverse):
  4.             if col != '#0':
  5.                 _data = [(self.set(k, col), k) for k in self.get_children()]
  6.             else:
  7.                 _data = [(self.item(k)['text'], k) for k in self.get_children()]
  8.  
  9.             _data.sort(reverse=reverse)
  10.             for _index, (_value, _parent) in enumerate(_data):
  11.                 self.move(_parent, '', _index)
  12.  
  13.         self.heading(col, command=lambda: do_sort(col, not reverse))
  14.  
  15.         def walk(children):
  16.             for child in children:
  17.                 if col != '#0':
  18.                     data = [(self.set(k, col), k) for k in self.get_children(child)]
  19.                 else:
  20.                     data = [(self.item(k)['text'], k) for k in self.get_children(child)]
  21.                    
  22.                 data.sort(reverse=reverse)
  23.                 for index, (val, parent) in enumerate(data):
  24.                     self.move(parent, child, index)
  25.                     if self.get_children(child):
  26.                         walk(self.get_children(child))
  27.  
  28.         walk(self.get_children())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement