Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. #include "widget.h"
  2. #include "ui_widget.h"
  3.  
  4. #include "CaptureItemDelegate.h"
  5. #include <QDebug>
  6. #include <QStandardItemModel>
  7.  
  8. Widget::Widget(QWidget *parent) :
  9. QWidget(parent),
  10. ui(new Ui::Widget)
  11. {
  12. ui->setupUi(this);
  13.  
  14. //Set the directory which contains images manually
  15. QDir dir ("/Users/jim/Desktop/testimages");
  16.  
  17. dir.setSorting(QDir::Time);
  18.  
  19. QFileInfoList pathList = dir.entryInfoList(QDir::Files);
  20. QStringList images = dir.entryList(QStringList() << "*.jpg" << "*.png", QDir::Files);
  21.  
  22. QStandardItemModel *pModel = new QStandardItemModel();
  23.  
  24. for (int i=0; i<pathList.size(); ++i) {
  25. QStandardItem *pItem = new QStandardItem;
  26. CaptureItemData itemData;
  27. itemData.snapshot = images.at(pathList.size()-1-i);
  28. itemData.imgPath = pathList.at(pathList.size()-1-i).filePath();
  29. pItem->setData(QVariant::fromValue(itemData), Qt::UserRole+1);
  30. pModel->appendRow(pItem);
  31. }
  32.  
  33. CaptureItemDelegate *pItemDelegate = new CaptureItemDelegate(this);
  34. ui->listView->setItemDelegate(pItemDelegate);
  35. ui->listView->setModel(pModel);
  36.  
  37. QItemSelectionModel * selectionModel = ui->listView->selectionModel();
  38. connect(selectionModel,SIGNAL(selectionChanged(QItemSelection,QItemSelection)),this,
  39. SLOT(selectionChangedSlot(QItemSelection,QItemSelection)));
  40. }
  41.  
  42. Widget::~Widget()
  43. {
  44. delete ui;
  45. }
  46.  
  47. void Widget::selectionChangedSlot(const QItemSelection &oldSelection, const QItemSelection &newSelection)
  48. {
  49. QModelIndex currentIndex = ui->listView->selectionModel()->currentIndex();
  50.  
  51. QVariant var = currentIndex.data(Qt::UserRole+1);
  52. CaptureItemData itemData = var.value<CaptureItemData>();
  53.  
  54. qDebug() << itemData.imgPath << + " clicked in the list";
  55.  
  56. ui->imgLabel->setPixmap(QPixmap::fromImage(QImage(itemData.imgPath)));
  57. }
  58.  
  59. void Widget::on_listView_doubleClicked(const QModelIndex &index)
  60. {
  61. Q_UNUSED(index)
  62. QModelIndex currentIndex = ui->listView->selectionModel()->currentIndex();
  63.  
  64. QVariant var = currentIndex.data(Qt::UserRole+1);
  65. CaptureItemData itemData = var.value<CaptureItemData>();
  66.  
  67. qDebug() << itemData.imgPath << + " double clicked in the list";
  68.  
  69. ui->imgLabel->setPixmap(QPixmap::fromImage(QImage(itemData.imgPath)));
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement