resfiledialog.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "resfiledialog.h"
  2. #include "ui_resfiledialog.h"
  3. #include <QDragEnterEvent>
  4. #include <QMimeData>
  5. #include <QUrl>
  6. ResFileDialog::ResFileDialog(QWidget *parent) :
  7. QDialog(parent),
  8. ui(new Ui::ResFileDialog)
  9. {
  10. ui->setupUi(this);
  11. QPixmap pix("/Users/menglanluo/pic.png");
  12. ui->label_newFile->setPixmap(pix.scaled(100,100,Qt::KeepAspectRatio));
  13. this->setAcceptDrops(true);
  14. ui->label_newFile->setAcceptDrops(false);
  15. }
  16. ResFileDialog::~ResFileDialog()
  17. {
  18. delete ui;
  19. }
  20. void ResFileDialog::dragEnterEvent(QDragEnterEvent *event)
  21. {
  22. if(event->mimeData()->hasUrls()){
  23. event->acceptProposedAction();
  24. }
  25. else{
  26. event->ignore();
  27. }
  28. }
  29. void ResFileDialog::dropEvent(QDropEvent *event)
  30. {
  31. const QMimeData *mimeData = event->mimeData();
  32. if(mimeData->hasUrls()){
  33. QList<QUrl> urls = mimeData->urls();
  34. QString urlName = urls.at(0).toLocalFile();
  35. QString fileName = urlName;
  36. //TODO: 去除路径显示
  37. ui->label_newFile->setText(fileName);
  38. }
  39. }
  40. void ResFileDialog::on_buttonBox_accepted()
  41. {
  42. res = ui->label_newFile->text();
  43. }
  44. QString ResFileDialog::getResName()
  45. {
  46. return res;
  47. }