qt pyqt qtreewidget

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)