2013-11-20 20 views
5

Ich habe eine QListView, die 5 Elemente enthält. sagen (Amerika, Kanada, Dänemark, Ägypten, Finnland) in meiner QListView. Jetzt möchte ich einen gemeinsamen Header für alle diese Elemente als LÄNDER setzen. Wie kann ich einen Header zu einer QListView setzen. Bitte Hilfe.Wie setze ich eine Kopfzeile zu einer QListView

+7

Die QListView Dokumentation sagt: * Diese Ansicht zeigt keine horizontalen oder vertikalen Header; Um eine Liste von Elementen mit einer horizontalen Überschrift anzuzeigen, verwenden Sie stattdessen QTreeView. * –

+0

Wenn Sie zuerst QListView verwenden, verwenden Sie ein Modell. Wenn Sie ein Modell verwenden, unterklassieren Sie es einfach überladen die Member-Funktion 'headerData (int, Qt :: Orientierung, const QVariant &, int)', um den Header zu geben. – Marcus

Antwort

0

Nun, Sie können nicht direkt, aber Sie können dies tun.

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); 


    } 

Der Ausgang wäre wie:

enter image description here

Darüber hinaus können Sie Orientierung, Ausrichtung und andere Dinge durch das Label ändern. Gute Kodierung :)