1
2
3
4 """"pyforms.gui.Controls.Control Tree"""
5
6 from pyforms.gui.Controls.ControlBase import ControlBase
7 from PyQt4.QtGui import QTreeWidget, QTreeWidgetItem, QTreeView
8 from PyQt4.QtGui import QAbstractItemView
9
10 __author__ = "Ricardo Ribeiro"
11 __copyright__ = ""
12 __credits__ = "Ricardo Ribeiro"
13 __license__ = "MIT"
14 __version__ = "0.0"
15 __maintainer__ = ["Ricardo Ribeiro", "Carlos Mão de Ferro"]
16 __email__ = ["ricardojvr at gmail.com", "cajomferro at gmail.com"]
17 __status__ = "Development"
21 """This class represents a wrapper to the QTreeWidget"""
22
23 - def __init__(self, label='', default=''):
26
27
38
39 @property
41 return self.header().isVisible()
42
43 @showHeader.setter
45 if value:
46 self.header().show()
47 else:
48 self.header().hide()
49
51
53
55
57 """ This event is called every time a new row is added to the tree"""
58 pass
59
63
67
68 @property
70 result = []
71 for index in self.selectedIndexes():
72 result.append(index.row())
73 return list(set(result))
74
75 @property
82
83 @property
85 for index in self.selectedIndexes():
86 item = index.model().itemFromIndex(index)
87 return item
88 else:
89 return None
90
91 @property
93 results = []
94 for row in range(self.model().rowCount()):
95 r = []
96 for col in range(self.model().columnCount()):
97 r.append(self.model.item(row, col))
98
99 if len(r) > 0:
100 results.append(r)
101
102 return results
103
105 if isinstance(other, QTreeWidgetItem):
106 self.model().invisibleRootItem().appendRow(other)
107
108 elif isinstance(other, list):
109 for x in other:
110 item = QTreeWidgetItem(x)
111 self.form.addTopLevelItem(item)
112 else:
113 item = QTreeWidgetItem(other)
114 self.form.addTopLevelItem(item)
115
116 self.setFirstColumnSpanned(
117 self.model().rowCount() - 1, self.rootIndex(), True)
118 return self
119
121 if isinstance(other, int):
122 if other < 0:
123 indexToRemove = self.mouseSelectedRowIndex
124 else:
125 indexToRemove = other
126 self.model().removeRow(indexToRemove)
127 return self
128
129 @property
131
132 @property
133 - def value(self): return None
134
135 @value.setter
136 - def value(self, value): self.addTopLevelItem(value)
137
138 - def save(self, data): pass
139
140 - def load(self, data): pass
141