def mouseMoveEvent(self, event): item = self.itemAt(event.pos()) if not self._itemIsCategory(item): if self.cursor().shape() == Qt.PointingHandCursor: self.unsetCursor() QTreeWidget.mouseMoveEvent(self, event) else: if event.pos().x() < 20 and item != None: self.setCursor(Qt.PointingHandCursor) else: self.setCursor(Qt.ArrowCursor)