Qt QTreeWidget-Kontextmenü: Elemente unter einem anderen hinzufügen oder Elemente löschen.

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

  •  28-10-2019
  •  | 
  •  

Frage

Es ist mir gelungen, ein Kontextmenü zu erstellen, das nach einem Rechtsklick auf jedes Element eines QTreeWidget-Baums aktiviert wird:

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()));

Ich beabsichtige, neue Elemente unter einem anderen im Baum hinzuzufügen oder sie zu löschen, indem ich mit der rechten Maustaste auf ein bestimmtes Element in diesem Kontextmenü klicke.

Ich bin mir jedoch nicht sicher, wie ich von den Handlern genau erkennen soll, auf welches Element des Baums der Rechtsklick ausgeführt wurde.

Könnten Sie mir bitte einen Hinweis geben?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Wenn Sie das TreeWidget-Auswahlverhalten nicht ändern oder das aktuelle Element nicht selbst festlegen möchten, können Sie nur das native Verhalten verwenden.Während das Kontextmenü, das den Baum anfordert, das Element auswählt, auf das der Rechtsklick ausgeführt wurde, ist dies das aktuelle Element .Im addElementHandler-Slot gibt Ihnen das currentItem () genau das gewünschte Element.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top