2010-04-14 19 views
6

Cómo hacer que el inicio de sesión expansible QTreeWidget siempre esté visible incluso cuando el elemento doest tiene algún subelemento? ¿Y cómo dibujar algo más en lugar del signo predeterminado?QTreeWidget expand signo

Gracias de antemano, Serge

+0

No sé la respuesta a la segunda parte de su pregunta. (Recomiendo volver a preguntar en una pregunta separada), pero creo que esto involucrará a QTreeView y a un delegado, eso probablemente sea mucho más trabajo que solo apegarse al predeterminado. –

Respuesta

9

QTreeWidgetItems tienen la property childIndicatorPolicy. Los valores permitidos son:

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

Usted desea que la primera.

theItem.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) 
+0

Muchas gracias, me ayudó, y para la segunda parte de mi pregunta, encontré la solución yo mismo – serge

+0

¿cómo se oculta el indicador cuando tiene un niño? – swdev

7

Respondiendo a mi segunda parte de la pregunta para los demás.

miré para dibujar funciones en QTreeView y se encontró lo siguiente:

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

Con esta función se puede dibujar lo que quieras en el lado izquierdo de cada elemento.

Y otra buena opción para este hanlde - utilice hojas de estilo para QTreeView:

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

Cuestiones relacionadas