我开发树视图并为其项目实现上下文菜单。右键单击一个项目,弹出其上下文菜单。右键单击其他项目,旧的上下文菜单消失,但新菜单不会出现。需要另一次右键单击才能显示新的上下文菜单。在这种情况下,任何方式进行右键单击都可以吗?我生成上下文菜单的代码如下
void MyTreeView::contextMenuEvent(QContextMenuEvent* event) override
{
if (Item* item = itemAt(event->pos())) {
unique_ptr<QMenu> menu(item->createMenu(this));
if (menu && !menu->isEmpty())
menu->exec(event->globalPos());
}
}