Ecco quello che sto cercando di ottenere (si tratta di un widget di QTableView
+ MVC sulla base di QAbstractTableModel
con moltiplicare delegati):Come creare un modello/visualizzare QTableView con delegati personalizzati (non modificabili)?
Note:
Delegati non funzionanti come editor, sono SOLO spettatori! Non ho intenzione di modificare il modello con questa vista tabella.
I delegati devono essere realizzabili. Significa che tutta l'altezza totale della riga BLU potrebbe essere 25px o 250px.
MV è un dato semplice:
1ROW: CompanyName1 Name1, Nome2, Nome3 ALTRI DATI
2ROW: CompanyName2 SingleName1 ALTRI DATI
3ROW: CompanyName3 Name1, Nome2 ALTRI DATI e così via. ..
domanda:
- È possibile creare delegati personalizzati (
QItemDelegate
oQStyleItemDelegate
), ad esempio, nella seconda colonna come nell'immagine sopra? E se è possibile, potresti darmi qualche esempio o link di risorse dove posso guardarli.
PS. Sì, ho visto tutti gli esempi Qt Demo con i delegati, ma proprio non capisco, come fare ciò che voglio.
PSS. QTableView
->setIndexWidget()
Penso che non sia una buona idea. Ma i metodi QTableView
->setItemDelegateForColumn(myCustomDelegate)
sono migliori!
P3S. Non sto cercando una soluzione per la classe QTableWidget
...
Grazie per le vostre risposte! :-)
Update # 1:
penso che:
delegati vengono utilizzati solo per le modifiche (per esempio, se stiamo lavorando con il modello/visualizza oggetto) e gestisci elementi simili (tutto/solo colonna/solo riga).
I widget personalizzati sono migliori, ma non li ho incontrati in progetti di Qt gratuiti. E non è troppo facile ottenere il codice bello e corretto di questo tipo di widget ...
Aggiunta:
- Ecco link alla somiglianza domanda.
Puoi descrivere come recuperare i dati dal tuo modello? Stai usando ruoli personalizzati? Ad esempio, come posso ottenere "CompanyName2" per una riga particolare? – Casey
Per ora, non ho una soluzione del genere. Solo 'QTreeWidget' + i miei widget personalizzati. Nella mia domanda sto cercando una risposta che conterrà le informazioni su come unire cose come: vista tabella, modelli e delegati tutti insieme ... – mosg
@mosg sarebbe molto più facile rispondere se si include un esempio di lavoro completo minimo in cui vuoi fare X. Francamente, ho trovato l'esempio del delegato di spinbox molto utile e semplice. http://qt-project.org/doc/qt-4.8/itemviews-spinboxdelegate.html. Lavoro in Python, quindi non posso fare a meno di dettagli specifici, oltre alla seguente risposta: è in realtà piuttosto semplice: è sufficiente reimplementare la vernice per un modello di sola lettura. Il resto del lavoro torna alla classe base delegata. – neuronet