gpt4 book ai didi

c++ - 在不同的 QGraphicsView 之间拖放

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:41 25 4
gpt4 key购买 nike

我有一个带有两个 QGraphicsView 的 QMainWindow,每个 QGraphicsView 都拥有一个 QGraphicsScene。两种 View 都不断显示(在屏幕上)。我希望能够将对象(从 QGraphicsItem 子类的对象)从一个 QGraphicsView 拖放到另一个。执行此操作的最佳方法是什么?

ps: 我可以在一个 QGraphicsView 中拖放

最佳答案

在 View 鼠标事件中创建一个新的拖拽对象来包含你想要移动的数据,例如:

QDrag* drag = new QDrag( this );
QByteArray ba;
QDataStream* data = new QDataStream(&ba, QIODevice::WriteOnly);
*data << m_slideIndex;
QMimeData* myMimeData = new QMimeData;
myMimeData->setData("application/x-thumbnaildatastream", ba);
drag->setMimeData( myMimeData );
drag->setPixmap( thumb );
drag->setHotSpot( thumb.rect().center() );
if ( drag->exec() == Qt::IgnoreAction )
{
qDebug() << "DRAG CANCELLED";
m_dragging = false;
}
drag->deleteLater();
delete data;

然后在 QGraphicsScene 的 dropEvent() 中实现该数据的捕获。

关于c++ - 在不同的 QGraphicsView 之间拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8730063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com