Menú contextual Qt QTreeWidget: agregue elementos debajo de otro o elimine elementos.

StackOverflow https://stackoverflow.com/questions/9387854

  •  28-10-2019
  •  | 
  •  

Pregunta

Me las arreglé para crear un menú contextual que se activa después de hacer clic con el botón derecho en cada elemento de un árbol QTreeWidget:

contextMenu = new QMenu(ui->treeWidget);
ui->treeWidget->setContextMenuPolicy(Qt::ActionsContextMenu);

addElement = new QAction("Add Element",contextMenu);
deleteElement = new QAction("Delete Element",contextMenu);

ui->treeWidget->addAction(addElement);
ui->treeWidget->addAction(deleteElement);

connect(addElement,    SIGNAL(triggered()), this, SLOT(addElementHandler()));
connect(deleteElement, SIGNAL(triggered()), this, SLOT(deleteElementHandler()));

Mi intención es agregar nuevos elementos debajo de otro en el árbol o eliminarlos haciendo clic derecho en un elemento específico usando este menú contextual.

Sin embargo, no estoy seguro de cómo darme cuenta de los controladores sobre exactamente en qué elemento del árbol se hizo el clic derecho.

¿Podría darme una pista?

¡Gracias de antemano!

¿Fue útil?

Solución

Si no va a cambiar el comportamiento de selección de Treewidget o establecer el elemento actual por su cuenta, puede usar el comportamiento nativo.Mientras que el menú contextual solicita el árbol selecciona el elemento, en el que se realizó el clic derecho y que es el CurrentItem .Así que en AddelementHandler Slot, el CurrentItem () le dará un artículo exacto que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top