如何在Qt中处理鼠标右键单击
我正在使用QListView显示朋友的姓名列表。当我单击一个名称时,它应该选择一个名称并显示配置文件相关信息,右键单击它需要显示上下文菜单,而不选择名称并显示配置文件信息。我面临的问题是右键单击,它选择了名称并显示了关联菜单。我不希望在右键单击时选择名称,只显示上下文菜单。我使用的Qt contextmenuevent如下所示:如何在Qt中处理鼠标右键单击,qt,qlistview,Qt,Qlistview,我正在使用QListView显示朋友的姓名列表。当我单击一个名称时,它应该选择一个名称并显示配置文件相关信息,右键单击它需要显示上下文菜单,而不选择名称并显示配置文件信息。我面临的问题是右键单击,它选择了名称并显示了关联菜单。我不希望在右键单击时选择名称,只显示上下文菜单。我使用的Qt contextmenuevent如下所示: void contextMenuEvent(QContextMenuEvent *ce) { QPoint pos = ce->pos(); em
void contextMenuEvent(QContextMenuEvent *ce)
{
QPoint pos = ce->pos();
emit customContextMenuRequested(pos);
}
这不起作用,并且从未调用上述插槽。使用mousePressEvent并按如下方式处理右键单击
void QkFriendsListView::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::RightButton)
{
emit customContextMenuRequested(event->pos());
}
else
QListView::mousePressEvent(event)
}
您设置了策略吗?是的,我添加了上下文菜单策略,如p_FriendsListView->setContextMenuPolicy(Qt::CustomContextMenu);从名称来看,我猜
QkFriendsListView
继承了Qt的ListView
,对吗?