我正在Mac OS X(Snow Leopard)上开发一个Qt应用程序,它将一个大文件的数据显示在视图中。我可以使用菜单的“提取”条目将这些数据提取到文件系统文件夹中,现在,我想用拖放方式提取它们。
我尝试实现自定义QMimeData,其受保护方法retrieveData就像此票证的解决方案一样:Qt 4.x: how to implement drag-and-drop onto the desktop or into a folder?)。 在这个方法中,我将数据提取到tmp文件夹中,然后返回tmp文件的路径。 不幸的是,这个方法在drag'n drop开始时调用,此时提取我的数据(即使用户没有删除这些数据)。
如何使用Qt拖放到Mac OS X上的文件系统文件夹?
答案 0 :(得分:2)
这是Qt拖放计划中的一个明显问题:它没有提供相当于OS X“承诺数据”的拖累。并且没有好办法解决它。拖动代码不会被告知丢弃的位置,因此事后无法复制数据。正如您所知,在拖动开始时立即调用检索数据,这在准备数据需要很长时间时无效。
现在我说使用平台特定代码进行黑客攻击是唯一的方法。不幸的是,我对此没有任何经验。