У меня есть класс QTreeView
с контекстным меню, установленным следующим образом:
m_ui.tree->setContextMenuPolicy(Qt::CustomContextMenu);
connect(m_ui.tree, SIGNAL(customContextMenuRequested(const QPoint&)),
this, SLOT(ShowTreeContextMenu(const QPoint&)));
...
void ShowTreeContextMenu(const QPoint& point)
{
m_treeContextMenu->exec(m_ui.tree->viewport()->mapToGlobal(point));
}
Однако, когда отображается контекстное меню, QTreeView
больше не будет реагировать на щелчки мыши. Нажатие на элемент в QTreeView
во время отображения контекстного меню приведет к удалению контекстного меню, но не выберет выбранный элемент.
Это особенно дезориентирует при щелчке правой кнопкой мыши по новому элементу, поскольку контекстное меню появляется над новым элементом, но, поскольку элемент не был выбран, содержимое контекстного меню ссылается на ранее выбранный элемент.