Seite 1 von 1

[QT 4.0/4.1] Problem mit QTreeWidget

Verfasst: 31. Dezember 2005 03:02
von Esleborn
hi,
ich hab ein "kleines Problem" mit QTreeWidget. Wenn man die eingefügten Bilder (Bild1, Bild2) anschaut, sieht man es vllt...
Es ist das Bild des selben QTreeWidget nur das unterschiedlich sortiert wurde... wenn man die Bilder genau anschaut, fällt aber auf, dass damit auch die Namen der "Subeinträge" geändert wurden. (Lokale Box wird zu Name der neuen Box)
Außerdem stimmen die "falsche[n] Namen" nicht.

Im folgenden steht der Code der für das Erstellen dieser Teile zuständig ist (ist etwas komplizierter als scheinbar benötigt, das liegt aber an anderen Teilen des Programms, die dies so benötigen).

Kann mir einer sagen was da falsch ist?

Im folgenden: QList < C_AbstractHierachyObject* > ml_children;

Code: Alles auswählen

QList < QTreeWidgetItem* >& C_AbstractHierachyObject::ConstructTreeWidgetItems ( QList < QTreeWidgetItem* > *fp_result ) const
{
   if ( fp_result == NULL )
      fp_result = new QList < QTreeWidgetItem* >;

   foreach ( C_AbstractHierachyObject *p_object, ml_children )
   {
      if ( p_object->Type ( ) == C_AbstractHierachyObject::ObjectTyp_Box )
         ( *fp_result ) += &( p_object->ConstructTreeWidgetItems ( ) );
   }

   return ( *fp_result );
}

QTreeWidgetItem& C_AbstractHierachyObject::ConstructTreeWidgetItems ( ) const
{
   QTreeWidgetItem *p_item ( ConstructTreeWidgetItem ( ) );

   foreach ( C_AbstractHierachyObject *p_object, ml_children )
   {
      if ( p_object->Type ( ) == C_AbstractHierachyObject::ObjectTyp_Box )
      {
         QTreeWidgetItem *p_itemChild ( &( p_object->ConstructTreeWidgetItems ( ) ) );
         p_itemChild->setText ( 0, p_object->Name ( ) );

         p_item->addChild ( p_itemChild );
      }
   }

   return ( *p_item );
}

QTreeWidgetItem *C_AbstractHierachyObject::ConstructTreeWidgetItem ( QTreeWidgetItem **fpp_ptr ) const
{
	QTreeWidgetItem *p_result ( NULL );
	SetTreeWidgetItem ( p_result );

	if ( fpp_ptr != NULL )
		( *fpp_ptr ) = p_result;

	return p_result;
}
(C_AbstractHierachyObject *mp_rootBox;)
(W_ExplorerWidget : public QTreeWidget;)

Code: Alles auswählen

void W_ExplorerWidget::GetWidgetItems ( )
{
	if ( mp_rootBox == NULL )
		return;

	clear ( );

	QList < QTreeWidgetItem* > list;
	mp_rootBox->ConstructTreeWidgetItems ( &list );

	foreach ( QTreeWidgetItem *p_item, list )
		insertTopLevelItem ( 0, p_item );
}
mehr Code der auf das QTreeWidget zugreift gibt es nicht.
Hat einer nen Fehler gefunden?