QTreeWidget activa señales de elementos
pyqt (1)
Necesito hacer algunas acciones cuando el elemento en QTreeWidget se activa, pero seguir el código no me da el resultado esperado:
class MyWidget(QTreeWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.connect(self, SIGNAL("activated(QModelIndex)"), self.editCell)
def editCell(self, index):
print index
o
class MyWidget(QTreeWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem, int)"),
self.editCell)
def editCell(self, item, column=0):
print item
¿Qué estoy haciendo mal o cómo tener la activación del elemento de la manera correcta?
Gracias de antemano, Serge
Si mira la documentación, la descripción de la señal que está buscando tiene un asterisco.
QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
Esto significa que su llamada de conexión debería verse así:
self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem*,int)"), self.editCell)
PyQt tiene una API nueva y agradable para conectar señales (desde la versión 4.6, creo). Recomiendo usarlo.
self.itemActivated.connect(self.editCell)