2013-10-25 86 views
4

我正在使用QListView顯示朋友的名字列表。當我點擊一個名字時,它應該選擇一個名字並顯示個人資料相關信息,並且在右鍵點擊它時需要顯示上下文菜單,而不必選擇一個名字並顯示個人資料信息。我面臨的問題是右鍵單擊它選擇的名稱,並顯示上下文菜單。我不希望右鍵點擊名稱,只顯示上下文菜單。我正在使用Qt contextmenuevent,如:如何處理鼠標右鍵單擊Qt

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

這不起作用,上面的插槽永遠不會被調用。

+0

你設置[文本菜單(http://qt-project.org/doc/qt-5.0/qtwidgets/qwidget.html# contextMenuPolicy-prop)策略? –

+0

是的我添加了上下文菜單策略,如p_FriendsListView-> setContextMenuPolicy(Qt :: CustomContextMenu); –

回答

4

使用mousePressEvent和處理右鍵像下面

void QkFriendsListView::mousePressEvent(QMouseEvent *event) 
{ 
    if(event->button() == Qt::RightButton) 
    { 
     emit customContextMenuRequested(event->pos()); 
    } 
    else 
     QListView::mousePressEvent(event) 
} 
+0

從名字我猜'QkFriendsListView'繼承Qt的'ListView',是否正確? – sami1592

相關問題