我有我自己的类继承自QListWidgetItem,另一类继承自QListWidget。我正在尝试使拖放功能正常工作。我想要将项目完全插入指示符所在的位置。我不能使用标准的QListWidget.dropEvent,因为它试图删除QListWidgetItems ...而不是我的类的对象。这里是我的dropEvent的一部分,但它不是真正的好:如何在某些项目之间删除QListWidget上的项目?
def dropEvent(self, event):
item=event.source().currentItem().clone()
oldrow=event.source().row(event.source().currentItem())
o=event.source().takeItem(oldrow)
del(o)
cursorpos=self.mapFromGlobal(QtGui.QCursor.pos())
itembefore=self.itemAt(cursorpos)
print itembefore
if itembefore:
row=self.row(itembefore)
self.insertItem(row, item)
else:
self.addItem(item)
现在它总是下降的项目,你就...放下该项目后,它其中显示指标始终不是。一些想法?
我不知道它如何帮助?我已经通过克隆它来创建我的类的对象(不是最好的主意,但工程)...但我仍然不能使用标准的dropEvent,甚至在我的函数中调用QListWidget.dropEvent(self,event)。对我来说最好的帮助就是看看python中的originall dropEvent函数的外观 – middleofdreams 2012-03-15 08:40:53