.h
Qt Code:
  1. #ifndef FILELIST_H
  2. #define FILELIST_H
  3.  
  4. #include <QtGui>
  5. #include <QtCore>
  6.  
  7.  
  8. class FileList : public QListWidget
  9. {
  10. Q_OBJECT
  11.  
  12. public:
  13. FileList();
  14.  
  15. protected:
  16. void dragEnterEvent(QDragEnterEvent *event);
  17. void dragMoveEvent(QDragMoveEvent *event);
  18. void dragLeaveEvent(QDragLeaveEvent *event);
  19. void dropEvent(QDropEvent *event);
  20. };
  21.  
  22. #endif
To copy to clipboard, switch view to plain text mode 

.cpp
Qt Code:
  1. #include <QtGui>
  2.  
  3. #include "fileList.h"
  4.  
  5.  
  6.  
  7. FileList::FileList()
  8. {
  9. setAlternatingRowColors(true);
  10. dropHintItem = new QListWidgetItem;
  11. dropHintItem->setText("Drop Files here...");
  12. dropHintItem->setFlags(dropHintItem->flags() & ~(Qt::ItemIsDropEnabled));
  13. insertItem(0, dropHintItem);
  14. setAcceptDrops(true);
  15. }
  16.  
  17. void FileList::dragEnterEvent(QDragEnterEvent *event)
  18. {
  19. event->acceptProposedAction();
  20. }
  21.  
  22. void FileList::dragMoveEvent(QDragMoveEvent *event)
  23. {
  24. event->acceptProposedAction();
  25. }
  26.  
  27. void FileList::dropEvent(QDropEvent *event) {
  28. const QMimeData *mimeData = event->mimeData();
  29. if (mimeData->hasUrls()) {
  30. //Insert the URLs and set flags to Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | defaultFlags;
  31. }
  32. event->acceptProposedAction();
  33. }
  34.  
  35. void FileList::dragLeaveEvent(QDragLeaveEvent *event)
  36. {
  37. event->accept();
  38. }
To copy to clipboard, switch view to plain text mode