Wpis z mikrobloga

@Metoksyfenidyna9:
Ad 1. Jak korzystasz z QWidgetów to QStringListModel przypięty do QListView.
Ad 2. Masz metodę QString::mid która działa jak std::string:substr.

Jest jeszcze opcja najlepsze i najbardziej oszczędna, zrobienie własnego QAbstractListModel, który przechowuje tylko sam bufor pliku. QAbstractListModel::data będzie zwracać tylko sformatowaną linijkę, z adresem na samym początku tylko wtedy kiedy QListView o niego poprosi.

Ogarnięcie QAbstractItemModel wymaga trochę nauki i czasu, ale pomaga pisać zgodnie ze wzorcem MVC.
  • Odpowiedz
@Metoksyfenidyna9: Nie, to się robi zupełnie inaczej.
Najpierw z przeładowanej metody QAbstractItemModel::flags zwracasz że dany element jest edytowalny.
QListView gdy przechodzi do edycji (standardowo dwuklik) elementu tworzy nowy Widet do edycji, pobiera z modelu rolę Qt::EditRole, zamiast Qt::DisplayRole, dzięki temu możesz zwrócić same hexy bez prefixu, a po edycji wykona na twoim modelu setData, gdzie możesz podmienić w buforze sobie tylko te bajty dla danej linijki.
  • Odpowiedz
@Metoksyfenidyna9: Ogólnie ogarnij QAbstractItemModel, bo to służy do wszystkiego, Listy, Tablice i Drzewa wszystko jednym modelem jest zrobione. Trochę czytania będzie, ale naprawdę super się z tego korzysta.
  • Odpowiedz