def create_widget(self): self.widget = QTreeView(self.parent_widget())
class QtTreeView(QtAbstractItemView, ProxyTreeView): #: Tree widget widget = Typed(QTreeView) #: Root index index = Instance(QModelIndex,()) def create_widget(self): self.widget = QTreeView(self.parent_widget()) def init_widget(self): super(QtTreeView, self).init_widget() d = self.declaration self.set_show_root(d.show_root) def init_model(self): self.set_model(QAtomTreeModel(parent=self.widget)) #-------------------------------------------------------------------------- # Widget Setters #-------------------------------------------------------------------------- def set_show_root(self,show): self.widget.setRootIsDecorated(show) def set_cell_padding(self,padding): self.widget.setStyleSheet("QTreeView::item { padding: %ipx }"%padding); def set_horizontal_minimum_section_size(self,size): self.widget.header().setMinimumSectionSize(size) def set_horizontal_stretch(self,stretch): self.widget.header().setStretchLastSection(stretch) def set_horizontal_headers(self, headers): self.widget.header().model().layoutChanged.emit() def set_resize_mode(self,mode): self.widget.header().setResizeMode(RESIZE_MODES[mode]) def set_show_horizontal_header(self,show): header = self.widget.header() header.show() if show else header.hide() def set_model(self, model): super(QtTreeView, self).set_model(model) #-------------------------------------------------------------------------- # View refresh handlers #-------------------------------------------------------------------------- def _refresh_visible_column(self, value): self._pending_column_refreshes -=1 if self._pending_column_refreshes==0: d = self.declaration # TODO: What about parents??? try: d.visible_column = max(0,min(value,self.model.columnCount(self.index)-d.visible_columns)) except RuntimeError: pass def _refresh_visible_row(self, value): self._pending_row_refreshes -=1 if self._pending_row_refreshes==0: d = self.declaration try: d.visible_row = max(0,min(value,self.model.rowCount(self.index)-d.visible_rows)) except RuntimeError: pass