Harshad wrote: > When I run the program, DragEnterEvent works as expected, but the > DropEvent does not seem to be working. I'm not an experienced Python > hacker, and am unable to trace out any problems with the source code. > Any and all help will be appreciated!
I'm making an educated guess from memory, but I think you need to implement your own dragMoveEvent() method and accept the event there as well. This is because the item view widgets typically like to handle all aspects of drag and drop, and QListView (from which QListWidget is derived) ignores drag move events by default. So, if you want to change the behaviour in a fundamental way, you need to handle many aspects of the process; in this case, you need to provide your own dragEnterEvent(), dragMoveEvent() and dropEvent() methods. These can be simple, as shown in the following example: class ListWidget(QListWidget): def __init__(self, parent = None): QListWidget.__init__(self, parent) self.setAcceptDrops(True) def dragEnterEvent(self, event): event.acceptProposedAction() def dragMoveEvent(self, event): event.acceptProposedAction() def dropEvent(self, event): print "Drop" event.accept() listWidget = ListWidget() listWidget.show() I tested this code with Python 2.4.2, Qt 4.1.4 and PyQt 4.1, and I think you should be able to do the same in your code. Two other points: 1. If you are prepared to try Qt's model/view classes, you can exert more control over the way drag and drop is handled. They're not quite as straightforward as the item-based classes that you're already using, but you benefit from greater reusability of your components and better control over the appearance and behaviour of the view widgets. This guide is for C++, but it translates fairly well into Python: http://doc.trolltech.com/4.1/model-view-programming.html 2. You seem to prefer adding methods to specific instances rather than subclassing and reimplementing methods in the base class. I hope you don't mind me asking, but is that because it takes less code, because you find it conceptually easier, or is there another reason that I'm missing? David -- http://mail.python.org/mailman/listinfo/python-list