Domanda

Ho un modello 2D in cui ogni riga rappresenta un fotogramma in un video e ogni colonna rappresenta un oggetto. L'oggetto può avere stati diversi su ciascun fotogramma e questo è memorizzato nel modello. Quindi ho un QTableView che mostra questi dati. Il modello ha dati di intestazione, quindi ogni riga ha un'intestazione come " frame k " e ogni colonna ha un'intestazione come " oggetto n " ;. Questa tabella è modificabile. Ma voglio che l'utente lo modifichi in un altro modo. L'altro modo è una vista grafica che mostra un singolo fotogramma. Sotto la vista grafica è presente un elenco (orientato orizzontalmente) che rappresenta ciascun fotogramma. In questo modo l'utente può fare clic su un frame nell'elenco e la vista grafica ora visualizza quel frame.

Il problema è che l'elenco mostra la prima colonna di ogni riga nel modello. Quello che voglio che faccia è mostrare invece l'intestazione di ogni riga (quindi l'elenco dice "frame 1, frame 2, ecc"). C'è un modo per farlo?

È stato utile?

Soluzione

Due possibili soluzioni:

  1. Prova a utilizzare un modello proxy (una sottoclasse di QAbstractProxyModel) che accede alle intestazioni di riga come colonne in una singola riga. Non banale perché il modello proxy visualizza come dati ciò che il modello originale considera intestazione.

  2. Visualizza una seconda vista 2D del modello, ma nasconde tutto tranne le intestazioni di colonna. Poiché i frame sono righe, è necessario un modello proxy da trasporre tra righe e colonne.

DISCLAIMER: In realtà non ho implementato nessuna delle soluzioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top