Решил проблему так: нафиг убрал из QTreeView все, что касается дропа и в главном окне в dragMoveEvent делаю так:
C++ (Qt)
QTreeView* view=qobject_cast<QTreeView*>(this->childAt(event->pos())->parent());
if (view)
{
.............
}
В this->childAt(event->pos())->parent() приходится использовать parent из-за того, что this->childAt(event->pos()) выдает QAbstractScrollArea, родителем которой и является QTreeView.
А вот с рисованием курсора вокруг итема в драге так и не разобрался.