Hi i am trying to display images in the ListView,
I am new to Model View Delegate programming and i am trying to learn using that, i am getting a plain window with out images.

Here is my code

Header File:

Qt Code:
  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3.  
  4. #include <QWidget>
  5. #include <QDir>
  6. #include <QList>
  7. #include <QDebug>
  8. #include <QFileDialog>
  9. #include <QStringListModel>
  10. #include <QListView>
  11. #include <QSortFilterProxyModel>
  12. #include <QStandardItemModel>
  13.  
  14. namespace Ui {
  15. class Widget;
  16. }
  17.  
  18. class Widget : public QWidget
  19. {
  20. Q_OBJECT
  21.  
  22. public:
  23. explicit Widget(QWidget *parent = 0);
  24. ~Widget();
  25.  
  26. private:
  27. Ui::Widget *ui;
  28. QListView *galleryView;
  29. QSortFilterProxyModel *proxyModel;
  30. };
  31.  
  32. #endif // WIDGET_H
To copy to clipboard, switch view to plain text mode 

CPP File:
Qt Code:
  1. #include "widget.h"
  2. #include "ui_widget.h"
  3.  
  4. Widget::Widget(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::Widget)
  7. {
  8. ui->setupUi(this);
  9.  
  10. model = new QStandardItemModel(this);
  11. proxyModel = new QSortFilterProxyModel(this);
  12. galleryView = new QListView;
  13.  
  14. QStringList thumbnails;
  15. QDir directory("/u03/Commom_SelfDiag/BackUp/CSD_Tool/");
  16. const QString folderPath = directory.filePath("images/");
  17. if(!folderPath.isEmpty())
  18. {
  19. QDir dir(folderPath);
  20. QStringList filter;
  21. filter << QLatin1String("*.png");
  22. filter << QLatin1String("*.jpeg");
  23. filter << QLatin1String("*.jpg");
  24. dir.setNameFilters(filter);
  25. QFileInfoList filelistinfo = dir.entryInfoList();
  26. foreach (const QFileInfo &fileinfo, filelistinfo) {
  27.  
  28. thumbnails << fileinfo.absolutePath();
  29. }
  30. }
  31. int count = thumbnails.count();
  32. qDebug()<<"The Total Images are"<<count;
  33.  
  34. model->insertColumn(0);
  35. const int numRows = thumbnails.size();
  36. model->insertRows(0,numRows);
  37. for(int i=0;i<numRows ;++i)
  38. {
  39. model->setData(model->index(i,0),QPixmap(thumbnails.at(i)),Qt::DecorationRole);
  40. }
  41. proxyModel->setSourceModel(model);
  42. proxyModel->setFilterKeyColumn(0);
  43. galleryView->setViewMode(QListView::IconMode);
  44. galleryView->setModel(model);
  45. galleryView->setEditTriggers(QAbstractItemView::AnyKeyPressed | QAbstractItemView::DoubleClicked);
  46.  
  47. ui->horizontalLayout->addWidget(galleryView);
  48.  
  49. }
  50.  
  51. Widget::~Widget()
  52. {
  53. delete ui;
  54. }
To copy to clipboard, switch view to plain text mode 

Main File
Qt Code:
  1. #include <QtGui/QApplication>
  2. #include "widget.h"
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6. QApplication a(argc, argv);
  7. Widget w;
  8. w.show();
  9.  
  10. return a.exec();
  11. }
To copy to clipboard, switch view to plain text mode 

Me and my friend are trying this example and we are trying the QStandardItemModel but we are unable to solve.
Please make necessary changes to make the code execute by displaying images.