[QT 4.0/4.1] Problem mit QTreeWidget

Alles rund um die Programmierung mit Qt
Antworten
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

[QT 4.0/4.1] Problem mit QTreeWidget

Beitrag 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?
Dateianhänge
vor Sortierung
vor Sortierung
Bild1.png (10.8 KiB) 987 mal betrachtet
nach Sortierung
nach Sortierung
Bild2.png (9.88 KiB) 987 mal betrachtet
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Antworten