c++ - 拖放到桌面或特定文件夹中,无需临时存储。

标签 c++ qt drag-and-drop qt4

我使用 Qt 4.x 编写了一个用 C++ 编写的小型文件传输应用程序。它登录到服务器,向用户显示服务器上可用文件的列表,并允许用户上传或下载文件。

一切正常;您甚至可以从桌面(或打开的文件夹)拖入文件,当您将文件图标拖放到服务器文件 ListView 中时,拖放的文件会上传到服务器。

现在我也有一个相反操作的请求。我的用户希望能够将文件从服务器文件 ListView 拖到桌面上,或拖到打开的文件夹窗口中,然后将该文件下载到该位置。

这似乎是一个合理的要求,但我不知道如何实现它。当图标被放到桌面上或打开的文件夹窗口中时,Qt 应用程序是否有办法找出与发生“放置事件”的位置对应的目录?理想情况下,这将是一个基于 Qt 的平台中立机制,但如果不存在,那么适用于 MacOS/X 和 Windows(XP 或更高版本)的平台特定机制就足够了。

最佳答案

尽管我从来没有完全按照您的意愿去做,但我认为这可以通过 Qt 实现。

您首先必须处理拖动事件。这取决于您用来查看服务器中文件层次结构的 View 。无论如何,这里有一个链接可以帮助您从 View 中启用拖动文件:http://www.trinitydesktop.org/docs/qt4/model-view-dnd.html简而言之,它只是几个需要重新实现的虚函数。该文档可为您提供帮助。

您还可以看到有关 Qt 中如何处理拖放事件的链接:http://www.trinitydesktop.org/docs/qt4/dnd.html

我正要回答有关掉落事件的问题,这时我注意到 3 年前有人逐字逐句地问过同样的问题...... Qt 4.x: how to implement drag-and-drop onto the desktop or into a folder?

关于c++ - 拖放到桌面或特定文件夹中,无需临时存储。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334710/

相关文章:

php - 为什么 C++ 应用程序不能创建 php、html 和 css 等接口(interface)?

python - PyQt: 'ConverterDialog' 对象没有属性 'comboBoxIndexChanged'

javascript - 将拖放文件发送到输入类型文件元素

winforms - 拖放多选

c# - C#/WPF 项目中的类在 C++/CLI 项目中不起作用

c++ - 程序无法运行 OpenCV,即使其他人可以

c++ - Makefile 没有找到目标文件

qt - QTableWidget 标题的上标

python - 无法捆绑 OpenCV 和 PyQt5

java - 由于 recyclerview 的拖放移动,如何更新 ArrayList 中的所有项目