Qt drag(拖动图片)时如何设置图片某个位置与鼠标绑定在一起移动

if ((event->pos() - startPos).manhattanLength() < QApplication::startDragDistance())
return;
QListWidgetItem *item = currentItem();
QMimeData *mimeData = new QMimeData;


mimeData->setImageData(item->icon());
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);

QPixmap pixmap(QSize(128, 128));
QIcon qI(item->icon());
pixmap = qI.pixmap(QSize(128, 128));
drag->setPixmap(pixmap);//设置拖动显示的图片
drag->setHotSpot(QPoint(64, 64));//让图片中心点随鼠标移动

drag->exec(Qt::MoveAction); //, Qt::MoveAction


drag->setHotSpot();是设置热点,图片大小是128*128时,如果需要让图片中心点随鼠标移动,就需要设置成drag->setHotSpot(QPoint(64, 64));如果需要图片左上顶点跟随鼠标移动,就需要设置成drag->setHotSpot(QPoint(0, 0));

猜你喜欢

转载自blog.csdn.net/ZT_0910/article/details/79139030