2013-11-20 27 views
5

QListViewには5個のアイテムがあります。私のQListViewで(アメリカ、カナダ、デンマーク、エジプト、フィンランド)と言ってください。今度は、という共通の項目を、すべての項目に対してヘッダとして設定したいと考えています。ヘッダをQListViewに設定するにはどうしたらいいですか?助けてください。ヘッダーをQListViewに設定する方法

+7

QListViewのドキュメントは次のように述べています:*このビューは水平または垂直のヘッダーを表示しません。水平ヘッダーを持つ項目のリストを表示するには、代わりにQTreeViewを使用します。* –

+0

まず、QListViewを使用している場合、モデルを使用します。モデルを使用している場合は、ヘッダーを与えるために、サブクラス化するだけでメンバ関数 'headerData(int、Qt :: Orientation、const QVariant&、int)'がオーバーロードされます。 – Marcus

答えて

0

まあ、直接することはできませんが、これを行うことができます。

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


    } 

出力は次のように次のようになります。また、あなたはラベルによって向き、アライメントや他のものを変更することができます

enter image description here

。良いコーディング:)