qt — перетащить & amp; Drop: рамка исчезает

Я собираюсь создать перетаскивание между двумя QGroubBox. каждый содержит DragDropFrames, они являются подклассом от QFrame, теперь у меня есть проблема, когда я хочу выпустить DragDropFrame из GroupBox, он мгновенно исчезнет

DragDropFrame:

void mousePressEvent(QMouseEvent *ev)
{
if (ev->button() == Qt::LeftButton)
{
offset = ev->pos();
if(!isReleaseFromParentWidget)
{
ReleaseFromParent(ev->pos());
}
isMouseDown = true;
}
};

void mouseReleaseEvent(QMouseEvent *ev)
{
if (ev->button() == Qt::LeftButton)
{
isMouseDown = false;
}
}

void mouseMoveEvent(QMouseEvent *ev)
{
if (isMouseDown)
{
this->move(mapToParent(ev->pos() - offset));
}
}

void ReleaseFromParent(QPoint point)
{
oldParentWidget = parentWidget();
setParent(parentWidget()->parentWidget());
isReleaseFromParentWidget = true;
this->move(mapToParent(offset));
}

когда я вызываю ReleaseFromParent в конструкторе из DragDropFrame, а не где-то еще, все работает нормально. но если dragdrop-action не выполняется, каждый dragdropframe должен иметь групповой блок в качестве родительского. кто-нибудь знает, что я делаю не так? изучал его несколько раз, и я думаю, что логика верна …

На самом деле, я не знаю, есть ли полная функциональность Drag and Drop, во-первых, я хочу решить проблему с тем, что движение работает нормально.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]