Sto seguendo https://doc.qt.io/qt-5/modelview.html per capire il meccanismo.
Sono arrivato al "2.5 The Minimal Editing Example".
Non mi sono chiare due cose, e non trovo esempi a riguardo che mi aiutino a chiarirmi le idee:
- in tutti gli esempi, i dati da "passare" alla view vengono generati col costruttore del model. Ma se dovessi avere una classe precedentemente implementata, ad esempio MiaClasse che al suo interno ha una matrice che deve essere rappresentata in una tableview, qual e' il modo migliore di creare la classe model? Mi vengono in mente tre strade:
- quando creo l'istanza del model, al costruttore (del model), passo un copia dei dati da rappresentare con la view;
- nel model, memorizzo un puntatore a MiaClasse;
- derivo la classe model sia da MiaClasse che da una delle piu' appropriate classi model di Qt;
- come comportarsi nel caso di dati modificabili dall'utente, ma lasciando la possibilita' di non salvare le modifiche ai dati. Il metodo setData da reimplementare nella classe model modifica i dati all'istante, ma io vorrei avere la possibilita' della classica domanda "si vogliono salvare le modifiche effettuate?". Se si allora modifico i dati di MiaClasse, altrimenti lascio tutto come in origine.
Spero di esser stato sufficientemente chiaro e ringrazio in anticipo.