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

Python 如何在特定的表视图项上设置弹出菜单,python,qt,qt4,pyqt,pyqt4,Python,Qt,Qt4,Pyqt,Pyqt4,我有一个QTableView,我需要显示一个弹出菜单来显示项目属性。 我需要将上下文菜单设置为apear,仅当您右键单击该表视图中的特定项时。 但我找不到办法。我可以设置上下文菜单,使其在您的鼠标悬停在桌子上方时显示。 我不能每件都买。 那么如何设置tableview中项目的上下文菜单? 如果想法不够清楚,请告诉我 提前感谢假设您可以控制菜单的弹出时间,那么您需要使用member函数来确定鼠标在哪个项目上 如果您当前无法控制菜单的显示时间,则需要将视图设置为可以让您控制它的内容 例如,如果对实


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


如果想法不够清楚,请告诉我

提前感谢

假设您可以控制菜单的弹出时间,那么您需要使用member函数来确定鼠标在哪个项目上

如果您当前无法控制菜单的显示时间,则需要将视图设置为可以让您控制它的内容

例如,如果对实现进行子类化和重写,则实现可能如下所示:

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
}

您也可以避免子类化。

感谢您的澄清,但什么是(需要\u上下文\u菜单\u角色\u偏移)?它做什么以及它属于什么类?您可以使用
Qt::UserRole+CONSTANT
来表示自定义数据角色。因此,它表示您的模型包含指定用户角色的数据。常数应表示目的。您可以将常量放入您喜欢的任何类或名称空间中。Qt使用
Qt
命名空间来表示此类常量。