Qt中从应用程序拖出文件或图片到桌面

void XXXX::mouseMoveEvent(QMouseEvent *event)
{
    this->viewport()->setCursor(Qt::PointingHandCursor);
    QString fileName /*=指向一个本地存在的文件 */;
    if (event->buttons() & Qt::LeftButton)
    {
        int distance = (event->pos() - _startPos).manhattanLength();
        if (distance >= QApplication::startDragDistance() && !this->rect().contains(event->pos()))
        {
            QMimeData *mimeData = new QMimeData;
            mimeData->setData("drag/fileName", fileName.toUtf8());
 
            QDrag* drag = new QDrag(this);
            drag->setMimeData(mimeData);
            drag->setHotSpot(event->pos());
            drag->exec(Qt::CopyAction, Qt::CopyAction);
        }
    }
 
    return XXXX::mouseMoveEvent(event);
}

关键点:执行操作设置为 Qt::CopyAction 。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值