나는 호출되는 다음 코드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()와 QTreeView 항목에서 상황에 맞는 메뉴를 구현하고 난 컨텍스트 메뉴를 볼 수 있습니다.
문맥 메뉴는 사용자가 항목을 마우스 오른쪽 버튼으로 클릭하고 선택한 항목에 따라 사용자 정의해야하는 경우에만 표시되어야합니다.
QPoint 정보에서/어떤 항목을 선택했는지 어떻게 알 수 있습니까? Qt 4.5.3입니다.
나는 MyDerivedQAbstractItemModel :: getItem (MyDerivedQTreeView-> currentIndex())을 시도했다. 항목을 마우스 오른쪽 단추로 클릭하지 않아도 기본적으로 첫 번째 항목을 반환합니다. QTreeView에서 빈 공간을 클릭하더라도 항상 항목을 반환합니다. – vinaym