1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
##Andrea Gavana
#!/usr/bin/env python
# This sample classifies the Python keywords alphabetically, using the
# first letter of the keyword (i.e., ``and`` goes into ``a``, ``for``
# goes into ``f`` and so on):
#
# * For each letter, adds a child to the treectrl root
# * In each child of the root item, adds its corresponding keyword(s)
#
import wx
import keyword
import string
class TreeFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='TreeCtrl example')
tree_ctrl = wx.TreeCtrl(self, -1, style=wx.TR_DEFAULT_STYLE | \
wx.TR_FULL_ROW_HIGHLIGHT | \
wx.TR_EDIT_LABELS)
# Add the tree root
root = tree_ctrl.AddRoot('Python keywords')
letters = []
for kwd in keyword.kwlist:
first = kwd[0]
if first not in letters:
letters.append(first)
for letter in letters:
item = tree_ctrl.AppendItem(root, letter)
for kwd in keyword.kwlist:
first = kwd[0]
if first == letter:
sub_item = tree_ctrl.AppendItem(item, kwd)
tree_ctrl.ExpandAll()
self.Centre()
if __name__ == '__main__':
app = wx.App(0)
frame = TreeFrame()
frame.Show()
app.MainLoop()
|