2012-10-13 104 views
0

如何移动QListWidgetItem的另一行?我可以使用拖放方法吗?
例子: QListWiget项目:Python Qt QListWidget项目拖放

item1 
item2 
item3 
item4 

项目3拖放。后:

item3 
item1 
item2 
item4 

我看着这个resource但我什么都不明白。

回答

2

如果您只需要内部拖动&,则不需要dropMimeData。这用于从小部件中删除的东西。项目视图(及其窗口小部件伴随)带有内部拖放操作。您需要使用InternalMove作为setDragDropMove

简单的例子:

import sys 
from PyQt4 import QtGui 

app = QtGui.QApplication(sys.argv) 

lw = QtGui.QListWidget() 
lw.setDragDropMode(lw.InternalMove) 
for i in range(10): 
    item = QtGui.QListWidgetItem('item %d' % i, lw) 
lw.show() 

sys.exit(app.exec_()) 
+0

的Qt真的应该在所有的拖拽一个大胆的部分/放东西,如果你想简单地围绕一个窗口中移动的东西,这是不一样的调用有时是复杂拖放机制(使用MIME数据类型)用于在元素之间混洗数据。 “拖放”这个术语比这个更普遍,许多人对此感到困惑。我知道我做到了。 – neuronet