i4445 2021-10-19 01:48 采纳率: 66.7%
浏览 152
已结题

用 qt 做的软件拖文件到windows的任意位置达到复制功能

我现在想用 qt 做的软件tableview里的文件拖到 windows的任意位置达到复制功能 想做个跟windows一样的拖动复制功能 可是 我怎么获取 我鼠标放开后 指向windows的路径啊 有知道怎么做的吗

  • 写回答

1条回答 默认 最新

  • 0ices 2021-10-19 02:20
    关注
    
    
        // 拖拽内容设置
        QDrag *drag = new QDrag(this);
        // drag过程当中的缩略图
        drag->setPixmap(grab());
        drag->setHotSpot(event->pos());
    
     QMimeData *mimeData = new QMimeData();
    QList<QUrl> urls;
    // TODO 把你想要复制的文件的原路径放进去
    mimeData->setUrls(urls);
        drag->setMimeData(mimeData);
        drag->exec();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
    i4445 2021-10-19 06:13

    非常感谢 你的解答好像你这个是剪切了 是不是 加上 drag->exec(Qt::CopyAction, Qt::CopyAction); 是复制啊 我这是个 tableview 一拖动 缩略图显示 整个表格在拖动 我其实只是拖动表格里的一行数据 这个怎么写缩略图啊

    回复
    0ices 回复 i4445 2021-10-19 07:08

    重写startDrag和Model的mimeData函数

    回复
    0ices 回复 i4445 2021-10-19 07:10

    exec的第一个参数可以也设置成Qt::ActionMask,这样拖动过程中按Ctrl键可以换成剪切,如果你只想复制的话用Qt::CopyAction就可以

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月19日
  • 创建了问题 10月19日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部