如何在特定的表视图项上设置弹出菜单

2024-04-27 21:12:05 发布

您现在位置:Python中文网/ 问答频道 /正文


我有一个QTableView,我需要显示一个显示项目属性的弹出菜单。 我需要将上下文菜单设置为apear,仅当您右键单击该表视图中的特定项时。 但找不到办法。我可以将上下文菜单设置为当您在桌面上时出现。 我不能每件都要。 那么如何在tableview中的项目上设置上下文菜单?


请告诉我这个想法是否不够清楚
提前谢谢


Tags: 项目视图属性菜单桌面上右键办法项时
1条回答
网友
1楼 · 发布于 2024-04-27 21:12:05

假设您可以控制菜单何时弹出,那么您需要使用indexAt(QPoint)成员函数来确定鼠标在哪个项目上。在

如果当前无法控制菜单何时出现,则需要将视图的contextMenuPolicy设置为可以控制它的内容。在

例如,如果子类化并重写contextMenuEvent,则实现可能如下所示:

void MyView::contextMenuEvent ( QContextMenuEvent * event )
{
    QModelIndex index = indexAt(event->pos());
    if (index.data(Qt::UserRole + NEEDS_CONTEXT_MENU_ROLE_OFFSET).toBool())
        // display context menu
    else
        // don't display context menu
}

您也可以install an event handler来避免子类化。在

相关问题 更多 >