Qt拖放动画

Qt拖放动画,qt,Qt,我有两个QTreeViews并排,我想实现将一个项目从一个表拖到另一个表中。然而,我想做的是,当要删除的项到达目标表时,两行排序为“为它腾出空间”,并分开,以真正向用户显示将要删除的项的确切位置。有人能给我指出正确的方向吗?我真的不知道从哪里开始。 谢谢 Stephen应该会引导您找到几乎所有您想做的事情,然后重新拖放 至于您的具体目标,您需要实现QWidget::dragMoveEvent(QDragMoveEvent*event),在拖动项目时,每当鼠标在目标树中移动时,都会调用该事件。然后

我有两个QTreeViews并排,我想实现将一个项目从一个表拖到另一个表中。然而,我想做的是,当要删除的项到达目标表时,两行排序为“为它腾出空间”,并分开,以真正向用户显示将要删除的项的确切位置。有人能给我指出正确的方向吗?我真的不知道从哪里开始。 谢谢 Stephen应该会引导您找到几乎所有您想做的事情,然后重新拖放

至于您的具体目标,您需要实现QWidget::dragMoveEvent(QDragMoveEvent*event),在拖动项目时,每当鼠标在目标树中移动时,都会调用该事件。然后使用qdragmovevent::pos()获取光标的位置。之后,在dragMoveEvent中,使用QTreeView::indexAt(pos())获取鼠标下的项目。现在,我不知道如何让项目以平滑的动画方式分离,这将是理想的。但是你可以(暂时)在列表中添加一个空白项,这将产生几乎相同的效果。然后实现QWIDGET::DROPEVER()来处理DROP事件,当发生此事件时,删除空白项并将已拖动的项插入到它所在的位置。