QTreeWidgetItem und QPointer
Verfasst: 14. Oktober 2011 22:33
Hallo,
ich habe das Problem zwei Pointer auf ein Objekt an unterschiedlichen Orten zu speichern. Wird das Object über ein Pointer gelöscht, ist der andere Pointer ungültig.
Dagegen gibt es smart Pointer. Z.B. QPointer und ähnliches.
Meine Objekte sind vom Typ QTreeWidgetItem aber QPointer funktioniert nur mit Objekte die von QObject abgeleitet wurden. Ich könnte zwar meine eignen Klasse schreiben die von QTreeWidgetItem und QObject erbt, aber dann müsste ich auch eine Menge Funktionen von QTreeWidget überladen um sicher zu gegehn, dass ich auch immer meine Klasse vor mir habe.
Zum Beispiel:
QList<QTreeWidgetItem *> findItems ( const QString & text, Qt::MatchFlags flags, int column = 0 ) const
Gibt es keinen Besseren Weg?
Mir geht es auch um eben genannte Funktion. Ich möchte items finden und die Liste später mal durchlaufen. Aber in der Zwischenzeit könnten die Items gelöscht werden. Was macht man denn da?
Ich hoffe ihr versteht mein Problem.
Gruß
ich habe das Problem zwei Pointer auf ein Objekt an unterschiedlichen Orten zu speichern. Wird das Object über ein Pointer gelöscht, ist der andere Pointer ungültig.
Dagegen gibt es smart Pointer. Z.B. QPointer und ähnliches.
Meine Objekte sind vom Typ QTreeWidgetItem aber QPointer funktioniert nur mit Objekte die von QObject abgeleitet wurden. Ich könnte zwar meine eignen Klasse schreiben die von QTreeWidgetItem und QObject erbt, aber dann müsste ich auch eine Menge Funktionen von QTreeWidget überladen um sicher zu gegehn, dass ich auch immer meine Klasse vor mir habe.
Zum Beispiel:
QList<QTreeWidgetItem *> findItems ( const QString & text, Qt::MatchFlags flags, int column = 0 ) const
Gibt es keinen Besseren Weg?
Mir geht es auch um eben genannte Funktion. Ich möchte items finden und die Liste später mal durchlaufen. Aber in der Zwischenzeit könnten die Items gelöscht werden. Was macht man denn da?
Ich hoffe ihr versteht mein Problem.
Gruß