I sub classed the QScrollArea using the following code:

Qt Code:
  1. import sys
  2. from PyQt4 import QtGui, QtCore, Qt
  3.  
  4. class ScrollArea (QtGui.QScrollArea):
  5. def dragEnterEvent(self, event):
  6. if event.mimeData().hasFormat('application/x-qabstractitemmodeldatalist'):
  7. event.accept()
  8. else:
  9. event.ignore()
  10.  
  11. def dropEvent(self, event):
  12. mimeData = event.mimeData()
  13. for mimeFormat in mimeData.formats():
  14. if mimeFormat != 'application/x-qabstractitemmodeldatalist':
  15. continue
  16. encoded = mimeData.data(mimeFormat)
  17. #encoded is a QByteArray
  18. print "length:", encoded.length()
  19. print "isNull:", encoded.isNull()
  20. print "isEmpty:", encoded.isEmpty()
  21.  
  22. stream = QtCore.QDataStream(encoded, QtCore.QIODevice.ReadOnly)
  23. # Returns the index from the qListWidget
  24. index = stream.readUInt32()
To copy to clipboard, switch view to plain text mode 
In designer I promoted the scrollArea including accepting drops using the class above and set the QListWidget to dragable. The drop is only works when I am dragging onto the promoted scroll area which is what I want.

I can't seem to figure out how to retrieve the item that was dragged out of the qListWidget in the drop event.

I put a bunch or print statments to test of the classes. Length varies on the length of the item, if I have "1" as an item, it prints out:
length: 27
isNull: False
isEmpty: False
status 0
byteOrder 0

"12" shows a length of 29. This goes for the same as letters. Not sure what the number is based off of.

Thanks, this is all I have so far. I did try playing with "stream" and still couldn't get any results.