【发布时间】:2015-01-18 04:41:57
【问题描述】:
在我们在 qt 4.8.5 中构建的软件中,在某些情况下拖放会停止工作。它应该在两个地方工作。一个是将文件拖到应用程序的某个位置,另一个是在 QTreeWidget 中,您可以在其中将一些叶子放入文件夹中。
但在某些机器 (Windows) 上,这两种方法都只是停止工作或从一开始就不起作用。然后只出现一个禁止光标。重新启动应用程序后,拖放再次起作用。 windows下权限不同好像不是问题。
我不知道在哪里寻找这个问题。任何建议表示赞赏。
【问题讨论】:
-
如果没有更多信息,就不可能为您提供帮助。你调试过代码吗?必须有(AFAIK)一些代码来处理小部件上是否接受拖动,您可能会在那里找到错误。请调试并显示代码的相关部分
-
对于 QTreeWidget,我为此重写了 dragEnterEvent。当您开始拖动其中一片叶子时一切正常时,就会触发此操作。但是当它不工作时它不会被解雇。我还可以看到叶子和文件夹的所有标志仍然正确(叶子 = ItemIsDragEnabled,文件夹 = ItemIsDropEnabled)。如果某些东西禁用了拖放,我搜索了 setAcceptDrops(false) 的整个代码,但事实并非如此。
标签: c++ qt drag-and-drop