27
votes

I'm looking to essentially replicate this:

enter image description here

What is the most appropriate Qt container widget for displaying my custom widgets containing image+subscript? I'm looking at QTableView and it seems to be supposed to have a set number of rows/columns, while I would like my program to change layout depending on window width (so that there is no horizontal scroll), and adding new widget should be done with addWidget(QWidget * w), not setWidget(int row, int column, QWidget * w). Is there a better component for this than QTableView (which requires much coding for my task)?

2
I wonder if you found a solution that allows you actually use custom widgets for items ? - Curtwagner1984

2 Answers

52
votes

You should use QListWidget (or QListView and subclass QAbstractItemModel) and set it's view mode to IconMode.

Example :

m_listeWidget->setViewMode(QListWidget::IconMode);

m_listeWidget->setIconSize(QSize(200,200));

m_listeWidget->setResizeMode(QListWidget::Adjust);

m_listeWidget->addItem(new QListWidgetItem(QIcon("../earth.jpg"),"Earth"));
m_listeWidget->addItem(new QListWidgetItem(QIcon("../tornado.jpg"),"Tornado"));
m_listeWidget->addItem(new QListWidgetItem(QIcon("../ics.jpg"),"Wallpaper"));

Result :

enter image description here

0
votes

definitly QTableView, Using custom itemDelegate to present every block, implements the custom widget to display the Image and Text Title