2013-11-20 19 views
5

Sto avendo un QListView che contiene 5 elementi. dire (America, Canada, Danimarca, Egitto, Finlandia) nel mio QListView. Ora voglio impostare un'intestazione comune per tutti questi elementi come PAESI. Come posso impostare un'intestazione su QListView. Per favore aiuto.Come impostare un'intestazione su un QListView

+7

La documentazione di QListView dice: * Questa vista non visualizza intestazioni orizzontali o verticali; per visualizzare un elenco di elementi con un'intestazione orizzontale, utilizzare invece QTreeView. * –

+0

In primo luogo, se si utilizza QListView, si utilizzerà un modello. Se si utilizza un modello, la sottoclasse si limita a sovraccaricare la funzione membro 'headerData (int, Qt :: Orientation, const QVariant &, int)' per fornire l'intestazione. – Marcus

risposta

0

Beh, non puoi direttamente ma, puoi farlo.

mHb = new QHBoxLayout; 
    { 

     QVBoxLayout *tInnerVB = new QVBoxLayout; 
     { 
      QLabel *tHeader = new QLabel("Team List"); 
      tHeader->setFont(QFont("FontAwesome")); 
      tInnerVB->addWidget(tHeader); 

      mTeamViewModel->setStringList(BDatabase::instance()->getTeamList()); 
      mLeTeamList->setModel(mTeamViewModel); 
      tInnerVB->addWidget(mLeTeamList); 

     } 
     mHb->addLayout(tInnerVB); 

     tInnerVB = new QVBoxLayout; 
     { 
      QLabel *tHeader = new QLabel("Team Members"); 
      tHeader->setFont(QFont("FontAwesome")); 
      tInnerVB->addWidget(tHeader); 

      mMembersViewModel->setStringList(QStringList()); 
      mLeTeamMembers->setModel(mMembersViewModel); 
      tInnerVB->addWidget(mLeTeamMembers); 

     } 
     mHb->addLayout(tInnerVB); 


    } 

L'uscita sarebbe come:

enter image description here

Inoltre, è possibile modificare l'orientamento, allineamento e l'altro per l'etichetta. Buona codifica :)