Hinzufügen eines Kontextmenüs für bestimmte Elemente in QTreeView

Ich schreibe eine Qt-Desktop-Anwendung in C ++ mit Qt Creator.

Ich habe in meinem Hauptfenster ein TreeView und ein kompatibles Modell deklariert.

Jetzt möchte ich ein Rechtsklick-Menü für das Baumelement haben. Nicht für alle Elemente, sondern für einen Teil davon, zum Beispiel für die Baumelemente mit einem geraden Index.

Ich habe versucht, ein einfaches Kontextmenü mit dem folgenden Code hinzuzufügen:

in der .h Datei:

QStandardItemModel* model;
QMenu* contextMenu;
QAction* uninstallAction;
private slots:
    void uninstallAppletClickedSlot();

und in der CPP-Datei:

im Konstruktor:

ui->treeView->setModel(model);
contextMenu = new QMenu(ui->treeView);
ui->treeView->setContextMenuPolicy(Qt::ActionsContextMenu);
uninstallAction = new QAction("Uninstall TA",contextMenu);
ui->treeView->addAction(uninstallAction);
connect(uninstallAction, SIGNAL(triggered()), this, SLOT(uninstallAppletClickedSlot()));

und ein Slot:

void MainWindow::uninstallAppletClickedSlot()
{

}

Dieser Code gibt mir ein Kontextmenü mit der gewünschten Aktion, aber haben Sie eine Idee, wie ich diese Aktion nur für die hinzufügen kannQStandardItems mit den geraden Indizes ??

Übrigens füge ich der Strukturansicht auf folgende Weise Elemente hinzu:

void MainWindow::AddItem(QString name)
{
QStandardItem *parentItem = model->invisibleRootItem();
QStandardItem *app = new QStandardItem(name);
parentItem->appendRow(app);
}

Ich habe viel gegoogelt, aber nichts gefunden :(

Danke im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage