PyQt4: determinar hacer clic en el área en blanco de QTreeWidget
(1)
Una subclase es probablemente la opción más simple (aunque lo mismo podría lograrse con un filtro de eventos).
Este código de ejemplo borrará la selección al hacer clic en un área en blanco, o al presionar la tecla Escape cuando el widget árbol tiene el foco del teclado:
class TreeWidget(QTreeWidget):
...
def keyPressEvent(self, event):
if (event.key() == Qt.Key_Escape and
event.modifiers() == Qt.NoModifier):
self.clearSelection()
else:
QTreeWidget.keyPressEvent(self, event)
def mousePressEvent(self, event):
if self.itemAt(event.pos()) is None:
self.clearSelection()
QTreeWidget.mousePressEvent(self, event)
Hice una estructura de árbol con QTreeWidget, y funciona bien. Pero, tengo un problema con eso. Comúnmente, con la estructura de árbol si quiero deseleccionar todo, hago clic en el área en blanco del área de árbol. QTreeWidget no es compatible con ese trabajo. (¿O no puedo encontrar la sugerencia?)
¿Subclasificación? o algo más puede resolver el problema? Determinar el clic en el área en blanco parece ser la clave de la solución, pero no puedo encontrar SEÑAL ni nada.
Gracias por cualquier ayuda :)