Методом научного тыка и некоторых размышлений нашел, в чем проблема: QCursor::pos() возвращает положение не конца курсора, а какой-то его другой части. Эмпирически выяснил, что все получается нормально, если написать следующее:
C++ (Qt)
void MainWindow::ShowContextListMenu()
{
QPoint point = QCursor::pos();
if(DevicesList->itemAt(DevicesList->mapFromGlobal(QCursor::pos()-QPoint(0, 25))))
PropertiesAct.setVisible(true);
else
PropertiesAct.setVisible(false);
ContextListMenu->exec(QCursor::pos());
}
Подскажите пожалуйста, как можно обойтись без таких махинаций.