2011-01-17 6 views
2

Ich bin mit C++ und (4.6) Model/View-Framework Qt und fragen, was ist der richtige Weg, um die Anzeige von Elementen in einer QListView zu ändern oder eine Klasse von QListView abgeleitet:Wie können Sie die Position von Symbolen und Texten von Elementen in einer QListView richtig anpassen?

alt text

zu :

alt text

ich bin nicht besorgt über die Sortierreihenfolge oder Flow, ich bin in der besten Art und Weise interessiert korrekt den Text auf der rechten Seite des Symbols zu positionieren.

Wenn dies nur durch Schreiben einer benutzerdefinierten QStyledItemDelegate getan werden kann, ist völlig in Ordnung, möchte ich ausschließen, ob dies der richtige Ansatz ist oder ob es am besten ist, SetLayout oder ähnliches zu betrachten, würde Beispielcode helfen.

Die Beispielanwendung, die ich betrachte, ist das Beispiel 'interview' von qtdemo, das unter anderem Symbole und Text in einer QListView anzeigt.

Antwort

1

In diesem Interview Demo, wenn Sie von

ändern
list->setViewMode(QListView::IconMode); 

zu

list->setViewMode(QListView::ListMode); 

, dass die Art nicht geben Ihre von sehen suchen sie?

+0

Nein: Ich muss es als Icon-Ansicht behalten, aber die Art, wie jedes Element gerendert wird, mithilfe eines QStyledItemDelegate anpassen –

0

Sie können diesen Weg auch versuchen.

void CFxDRListView::changeView(int view) 
{ 
    setWrapping (false); 

    switch(view) 
    { 
    case eThumbnail: 
     { 
      clearPropertyFlags() ; 
      setViewMode(QListView::IconMode); 
      setLayoutMode(QListView::Batched); 
      setWrapping(true); 
     } 
     break; 
    case eIcons: 
     { 
      clearPropertyFlags() ; 
      setViewMode(QListView::IconMode); 
      setFlow(QListView::LeftToRight); 
      setLayoutMode(QListView::SinglePass); 
      setWrapping(true); 
      setMovement(QListView::Free); 
     } 
     break; 
    case eList: 
     { 
      clearPropertyFlags() ; 
      setFlow(QListView::TopToBottom); 
      setViewMode(QListView::ListMode); 
      setMovement(QListView::Free); 
     } 
     break; 
    } 
} 
Verwandte Themen