2010-04-14 8 views
6

Come rendere segno espandibile QTreeWidget sempre visibile anche quando l'oggetto doest ha elementi secondari? E come disegnare qualcos'altro al posto del segno predefinito?QTreeWidget espandere segno

Grazie in anticipo, Serge

+0

Non conosco la risposta alla seconda parte della tua domanda. (Vi consiglio di nuovo di fare una domanda a parte). Ma penso che questo coinvolgerà QTreeView e un delegato, probabilmente è molto più lavoro che limitarsi al default. –

risposta

9

QTreeWidgetItems hanno la property childIndicatorPolicy. I valori consentiti sono:

  • QTreeWidgetItem :: ShowIndicator
  • QTreeWidgetItem :: DontShowIndicator
  • QTreeWidgetItem :: DontShowIndicatorWhenChildless

Si desidera che il primo.

theItem.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) 
+0

Grazie mille, mi ha aiutato, e per la seconda parte della mia domanda - ho trovato io stesso la soluzione – serge

+0

come nascondere l'indicatore quando ha un figlio? – swdev

7

Rispondere alla seconda parte della domanda per gli altri.

Ho guardato per le funzioni di disegno in QTreeView e trovato seguente:

void QTreeView::drawBranches (QPainter * painter, const QRect & rect, const QModelIndex & index) 

Con questa funzione è possibile disegnare quello che vuoi sul lato sinistro di ogni elemento.

E un'altra buona scelta per questo hanlde - Fogli di stile per uso QTreeView:

http://qt.nokia.com/doc/4.6/stylesheet-examples.html#customizing-qtreeview