gescheit in Bezug auf:
Nur das generieren, was auch wirklich benotigt wird ...
Ich wette Du generiest alle ModelItems sofort, am besten noch mit nem "new". Dann brauchst dich auch ned wundern, warum die verwaltung ordentlich performance kostet.
Es ging mir darum, viele Daten zu erzeugen.
Besser, die Daten so organsieren, das sie nicht aufs mal brauchst ....
Sortieren filtern nicht auf ModelItemEbene sondern am besten auf datenstrukturebene.
Und z.B. 5 Millionen Texte sortieren z.b. dauert halt, das wird man nicht wegoptimieren koennen.
Besser: dafuer zu sorgen das man es nur einmal macht ...
noch Besser: man macht es zu einem Zeitpunkt wo es nicht weh tut (beim einfuegen z.b. ) wenn möglich natuerlich.
Die itembasierte View ist geschickt um Formatierungen durchzuführen.
geht mit dem Modelbasierendem aber auch.
Schau dir mal den Qt::DisplayRole enum an.
Das Modelbasierende iss aber imho das designtechnisch bessere, weil es Dir ein konzept und eine Schnittschnelle vorschreibt.
Performancetechnisch besser koenntest schon mit nem Itembasierenden besser fahren, aber nur wenn das verhalten auf deine Anforderung optimieren kannst.
Dazu musst Du aber ueberhaupt erst mal optimieren (in deinem beispiel tust du nix). Waehrend das Modelbasierende Dir schon für standardanwendungsfall optimiert.
Sortieren / filtern passt aber genau so ins Moodell-basierende.
Eigentlich iss ja QStandardItemModel schon nen Model ... das doofe nur es mappt es wieder zurueck auf ein Itembasierendes Model ^^
zum Testen:
Mach mal nen eigenes Model, leite von QAbstractItemModel ab.
Ueberschreibe die notwendigen virtuellen methoden.
und wichtig, generier "daten" nur bei Abfrage ueber die data() methode des Models. Vermeide da das new, sondern erzeug nur die strings local aufn Stack.
und wetten, das ding wird 1000 mal performanter sein.
Und ne gute Übung fuer Dich in das Thema reinzukommen.
Ciao ...