一、问题描述
设计初衷是,表格的某一项右键选中后,弹出菜单。
但是在空白非有效区域点击右键后,系统会认为上次的选择仍然有效,仍会弹出右键菜单,如上图所示。
二、解决办法
调用[override virtual] QModelIndex QTreeView::indexAt(const QPoint &point) const
函数,判断点击处是否有index存在。
> void TableView::onCustomContextMenuRequested(const QPoint &pos)
{
QModelIndex clickedIndex = indexAt(pos); // 得到右键点击处的index
if (clickedIndex.isValid()){// 如果index有效,再响应Request
// do something
}
}`