qt - Drag&掉落:帧消失

时间:2013-04-25 13:29:22

标签: c++ qt user-interface drag-and-drop qt-designer

我即将在两个QGroubBox之间创建一个拖放。每个包含DragDropFrames,它们是QFrame的子类,现在我有问题,当我想从GroupBox中释放DragDropFrame时,它会立即消失

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));
}

当我从DragDropFrame而不是其他地方调用构造函数中的ReleaseFromParent时,一切正常。但是如果没有进行dragdrop-action,则每个dragdropframe都应该有一个groupbox作为parent。谁知道我做错了什么?多次研究,我认为逻辑是正确的......

实际上我知道没有完整的拖放功能,首先我想解决运动正常的问题。

0 个答案:

没有答案