QTreeWidgetItem und QPointer

Alles rund um die Programmierung mit Qt
Antworten
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

QTreeWidgetItem und QPointer

Beitrag von kater »

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ß
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QTreeWidgetItem und QPointer

Beitrag von franzf »

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?
Ganz einfach: Nur suchen, wenn du auch was damit machen willst. Es macht doch wirklich keinen Sinn, Operationen auf einem nicht mehr aktuellen Datensatz durchzuführen. Nicht nur gelöschte Items sind da ein Problem, sondern neu hinzugefügte aber in der alten Suche natürlich noch nicht gefundene Items.
Warum willst du denn unbedingt das Suchergebnis speichern?
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Re: QTreeWidgetItem und QPointer

Beitrag von kater »

Naja. Um die Items in der Liste nacheinander aufzurufen. Eben immer wenn der Benutzer "weiter" klickt.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QTreeWidgetItem und QPointer

Beitrag von franzf »

Schön dass langsam die Details klarer werden.
Was macht weiter? Was macht dann der User?
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Re: QTreeWidgetItem und QPointer

Beitrag von kater »

Ich versuche eben mein Problem zu verallgemeinern :)
Naja, das wars auch schon was passiert. Wann ich die Daten aus der Liste abrufe spielt ja nicht so groß eine Rolle.
Ich brauch eine Möglichkeit zu überprüfen ob mein Pointer noch gültig ist, oder eine Möglichkeit meine Liste immer sauber zu halten.
Aber ich seh keinen einfachen Weg das zu tun.
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Re: QTreeWidgetItem und QPointer

Beitrag von kater »

Ok, hab eine Lösung. Wenn auch anders wie gedacht. Es gibt die Klasse QTreeWidgetItemIterator. Damit kann ich den Baum durchlaufen wie ich gerade will, ohne eine extra Liste mit Pointer zu speichern :)
Antworten