2011-10-05 90 views
2

我有一個QTreeWidget,我認爲所有正確的設置都是爲了能夠通過拖動它們來重新排序項目而設置的。它有時可以工作,但更多的時候我會將一個物品拖入另一個物品,並且它消失或成爲孩子。在QTreeWidget中用PyQt拖放來重新排序項目

有沒有辦法阻止這種情況發生,所以你不會失去你想要重新訂購的物品?我想你可以在Qt Designer中實現這一點。我有dragDrop模式設置爲InternalMove和defaultDropAction設置爲MoveAction,但我甚至不確定這些都是我需要調整。

在此先感謝!

回答

2

您可以將標誌添加到控制拖放行爲(除其他外)的單個樹控件項目上。例如,爲了防止被人放置目標的項目,嘗試這樣的事情:

item = QTreeWidgetItem(parent) 
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled) 

詳情參見Qt的文檔:http://doc.qt.nokia.com/4.7/qt.html#ItemFlag-enum