【问题标题】:Prevent drag outside QTreeWidget防止在 QTreeWidget 外部拖动
【发布时间】:2014-10-02 02:36:30
【问题描述】:
在 QTreeWidget 中,我希望能够使用 InternalMove 重新排序项目并从我的应用程序中的另一棵树接收掉落物。
如果我将dragDropMode 设置为InternalMove,我将无法将项目放入其中。但是,如果我将其设置为 DragDrop,它会让用户将项目拖出我的 QTreeWidget。
有没有办法防止这种情况发生?有没有其他方法可以解决这个问题?
【问题讨论】:
标签:
qt
drag-and-drop
qtreeview
qtreewidget
【解决方案1】:
如果您不担心应用程序之外的拖拽,可以在您的应用程序中设置 other QTreeWidget 的 DragDropMode(或任何派生自 QAbstractItemView 的东西)到:
treeWidget->setDragDropMode(QAbstractItemView::DragOnly);
足以获得所需的行为。这不会阻止相关QTreeWidget 的项目被拖动,但它们不能被拖放到其他树中,而您仍然可以将它们(以及 DragOnly 树中的项目)拖放到接受拖放的树中。这有帮助吗? (诚然,这不是解决问题的最复杂的方法,但执行一些本地测试似乎可行)