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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值