我已經實現上下文菜單中QTreeView則項目用下面的代碼如何在QTreeView項目中查找從customContextMenuRequested()中選擇的項目?
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()被調用,我可以看到上下文菜單。
問題是上下文菜單應僅在用戶右鍵單擊某個項目時可見,並且應根據所選項目進行自定義。
如何獲取是否從QPoint信息中選擇哪個項目?我在Qt 4.5.3上。
我試過MyDerivedQAbstractItemModel :: getItem(MyDerivedQTreeView-> currentIndex())。它默認返回第一個項目,即使我沒有右鍵單擊某個項目。它總是返回一個項目,即使我點擊QTreeView中的任何空白空間。 – vinaym 2010-04-19 09:45:24