2024-04-27 21:12:05 发布
网友
我有一个QTableView,我需要显示一个显示项目属性的弹出菜单。 我需要将上下文菜单设置为apear,仅当您右键单击该表视图中的特定项时。 但找不到办法。我可以将上下文菜单设置为当您在桌面上时出现。 我不能每件都要。 那么如何在tableview中的项目上设置上下文菜单?
请告诉我这个想法是否不够清楚 提前谢谢
假设您可以控制菜单何时弹出,那么您需要使用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来避免子类化。在
假设您可以控制菜单何时弹出,那么您需要使用indexAt(QPoint)成员函数来确定鼠标在哪个项目上。在
如果当前无法控制菜单何时出现,则需要将视图的contextMenuPolicy设置为可以控制它的内容。在
例如,如果子类化并重写contextMenuEvent,则实现可能如下所示:
您也可以install an event handler来避免子类化。在
相关问题 更多 >
编程相关推荐