Comment trouver l'élément sélectionné à partir de customContextMenuRequested() sur QTreeView article?

J'ai mis en œuvre les menus contextuels dans QTreeView les articles avec le code suivant

MyDerivedQTreeView->setModel(MyDerivedQAbstractItemModel);
MyDerivedQTreeView->setContextMenuPolicy(Qt::CustomContextMenu);  
connect(MyDerivedQTreeView,   
        SIGNAL(customContextMenuRequested(const QPoint &)),   
        MyDerivedQAbstractItemModel(),   
        SLOT(contextualMenu(const QPoint &)));

void MyDerivedQAbstractItemModel::contextualMenu(const QPoint& point)
{
    QMenu *menu = new QMenu;
    menu->addAction(QString("Test Item"), this, SLOT(test_slot()));
    menu->exec(MyDerivedQTreeView->mapToGlobal(point));
}

MyDerivedQAbstractItemModel::contextualMenu() est appelée et je peux voir le menu contextuel.

Problème est menu contextuel doit être visible uniquement si l'utilisateur clique avec le bouton droit sur un élément, et il devrait être personnalisés selon l'élément sélectionné.

Comment puis-je obtenir si/l'élément sélectionné à partir de QPoint de l'information? Je suis sur Qt 4.5.3.

J'ai essayé MyDerivedQAbstractItemModel::getItem(MyDerivedQTreeView->currentIndex()). Elle renvoie le premier élément par défaut, même si je n'ai pas droit-cliquez sur un élément. Il renvoie toujours à un point même si je clique sur n'importe quel espace vide dans le QTreeView.

OriginalL'auteur vinaym | 2010-04-19