当前的 ALPHA 4 版本的 Necessitas(Android 的 Qt 端口)存在拖放错误。拖放工作正常,除了它阻止事件循环阻止 GUI 获得重新绘制事件。我在项目错误跟踪器中报告了这个问题。 https://bugs.kde.org/show_bug.cgi?id=304180
这可能会在下一个版本中得到解决,并且对于端口的开发人员来说似乎并不是什么阻碍,因为 Necessitas 仍然是 Beta 版。我想试一试,因为我要移植的东西需要它才能工作。
我需要熟悉事件循环和 Qt 内部的 Qt 大师的帮助。我从 Qt 文档中知道拖放实现依赖于平台,您可以阅读以下注释,
注意:在 Linux 和 Mac OS X 上,拖放操作可能需要一些时间,但此功能不会阻塞事件循环。在执行操作时,其他事件仍会传递给应用程序。在 Windows 上,Qt 事件循环在操作期间被阻塞。
查看 Qt 源代码,我在QDropManager
其中实现了
src/gui/kernel/qdnd_XXX.cpp
该文件对 X11、Win、MacOS 和 Symbian 有不同的实现。在 Necessitas Qt 中,它的 X11 版本用于构建。
有关如何解决此问题的任何指示都将非常有帮助。