7

我正在使用 QListView 来显示朋友姓名的列表。当我单击一个名称时,它应该选择一个名称并显示配置文件相关信息,右键单击它需要显示上下文菜单而不选择名称并显示配置文件信息。我面临的问题是右键单击它选择名称并显示上下文菜单。我不希望在右键单击时选择名称,并且只显示上下文菜单。我正在使用 Qt contextmenuevent,例如:

void contextMenuEvent(QContextMenuEvent *ce)
{
    QPoint pos = ce->pos();
    emit customContextMenuRequested(pos);
}   

这不起作用,并且永远不会调用上述插槽。

4

1 回答 1

9

使用 mousePressEvent 并处理右键单击,如下所示

void QkFriendsListView::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt::RightButton)
    {
        emit customContextMenuRequested(event->pos());
    }
    else
        QListView::mousePressEvent(event)
}
于 2013-10-25T14:48:33.563 回答