Widok miniatur dla modelu który dziedziczy po QAbstractTableModel

0

Mam takie dane:

struct Measure
{
  int id{0};
  std::string time{"2023-01-01 11:11"};
  std::string name{"Kowalski"};
  std::string image{"image.bmp"};
  bool checked{false};
  std::string desc;
};
std::vector<Measure> m_data;

Wyświetlam takie dane w QTableView

Jedno z pól to nazwa pliku z obrazem.
Jak wyświetlić alternatywny widok miniatury ? na podstawie pola image ?

Jak to powinno być zrobione ?

  • Model musi zostać przerobiony aby obsługiwał widok miniatur ?
  • Do tych samych danych muszą być drugi widok , jeden wyświetla tabele a drugi miniatury ?
  • trzecia droga ?

Po lewej widok tabela po prawej widok miniatury
screenshot-20231119000003.png
https://github.com/mariuszmaximus/MVC_example

1

Nie wiem czy pytasz o to jak w modelu wyświetlić obraz (przeładowujesz funkcję data() modelu dla Qt::DisplayRole), czy jak to zrobić od strony designu aplikacji (tutaj sugerowałbym po prostu umieścić QLabel i wyświetlać w nim obraz bazowany na obecnej selekcji, ew. jakiś QGraphicsView jak chcesz robić coś bardziej zaawansowanego).

1

nie wiem czy pomoże ale kiedyś był taki przykład w qt z gwiazdkami
https://doc.qt.io/qt-6/qtwidgets-itemviews-stardelegate-example.html

0

@revcorey: Twój przykład bardzo dobry !
taki właśnie chciałem efekt uzyskać
screenshot-20231119171426.png
Po prawej QListView w którym dodałem setItemDelegate (zwiększyłem rozmiar elementów i rysuje grafikę nadpisując QStyledItemDelegate::paint)

1 użytkowników online, w tym zalogowanych: 0, gości: 1