gpt4 book ai didi

c++ - Qt 拖放到 windows 资源管理器 : How do I know the dropped destination path

转载 作者:行者123 更新时间:2023-11-30 05:24:09 26 4
gpt4 key购买 nike

我想做的是显示在线文件的 ListView ,就像FTP客户端列出FTP服务器上的所有文件一样,可以将任意一行或多行拖动到任何本地文件夹以保存拖动的文件在那里。

我计划通过以下步骤实现:

  1. 初始化拖拽事件,并将选中的文件路径保存到服务器[done]
  2. 子类化 QMimeData 类,并按照此线程的建议覆盖 retrieveData 函数 here [完成]
  3. 只需完成拖放过程,然后找到拖放的目标路径,比如 C:\somefolder\subfolder,然后下载所有文件到那里,工作完成。 【未完成】

但我无法找到任何地方来获取 dropped destionation 路径,甚至无法通过处理 dragEnter\dragMove\dragLeave\drop 事件。我也进行了大量的谷歌搜索,发现了一些类似的问题,但从来没有任何可靠的答案。

请阐明这一点。这个解决方案甚至可以用 QT 实现吗?我应该如何获得目标路径或者有没有其他方法可以实现这个目标?

最佳答案

对于正在搜索此内容的任何人,我可能会找到答案,但这并不容易,而且可能取决于平台。

经过大量(字面上的)搜索,我在 FileZilla's 中找到了解决方案源代码,原来要应对这种情况,你需要:

  1. 您需要一个 shell 扩展来监控(或其他)拖动过程
  2. 开始正常的拖放
  3. 当鼠标放下时,什么都不做,让整个拖放过程结束
  4. 通过 shell 扩展,您可以获得实际的目标路径,并在那里下载您的文件。

有关技术细节,请访问FileZilla official website

我认为这仅适用于 Windows,如果有人得到其他平台的答案,请告诉我!

关于c++ - Qt 拖放到 windows 资源管理器 : How do I know the dropped destination path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38804272/

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