1 # -*- coding: iso-8859-15 -*-
2 """Ce module permet de créer des vues sous forme d'arbre
3 Ces vues sont construites à partir des informations
11 class Tree(QListView):
13 Classe pour faire une vue d'un arbre
15 def __init__(self,parent=None,onSelect=None):
16 QListView.__init__(self,parent)
17 self.setCaption("Tree")
18 self.setRootIsDecorated(1)
20 self.addColumn("Name")
23 self.onSelect=onSelect
24 self.connect(self,SIGNAL('selectionChanged(QListViewItem *)'),
27 def handleSelected(self,node):
28 if self.onSelect:self.onSelect(node.item)
30 def additem(self,item):
31 node=Node(self,item.label,item,self.last)
33 self.children.append(node)
37 class Node(QListViewItem):
38 """Node(parent,text,item,after)
39 Classe pour faire une vue d'un noeud d'un arbre
41 def __init__(self,parent,text,item,after=None):
43 QListViewItem.__init__(self,parent,text)
45 QListViewItem.__init__(self,parent,after,text)
47 self.setPixmap(0,Icons.get_image(item.getIconName()))
48 self.setExpandable(self.item.isExpandable())
51 def additem(self,item):
53 node=Node(self,item.label,item,self.children[-1])
55 node=Node(self,item.label,item)
56 self.children.append(node)
62 for child in self.item.getChildren():
66 for node in self.children:
70 QListViewItem.setOpen(self,o)
73 if __name__ == "__main__":
75 app = QApplication(sys.argv)
77 t.additem(Item("item1"))
78 #n=t.additem(Item("item2"))
79 #n.additem(Item("item3"))