Seite 1 von 1

QTreeView als Datei- und Ordnerbrowser

Verfasst: 15. Februar 2008 16:49
von D.Cent
Hallo,
Ich wollte mir gerne das im Titel genannte basteln.

Nur leider gibt es da ein kleines Problem: Das Beispiel aus der Qt-Doku funktioniert nicht mehr!
Da die Dokumentation anscheinend überholt werden muss, habe ich hier im Forum nach etwas verwertbarem gesucht und stieß auf das hier:

http://qt-forum.de/forum/viewtopic.php? ... t=treeview

Doch leider ist auch hier was falsch:

Code: Alles auswählen

odf_image.cpp:59: error: no matching function for call to ‘QItemSelectionModel::QItemSelectionModel(QDirModel&)’
Danach nennt er noch einige Funktionen, die QAbstractItemModel haben wollen.

Zeile 59 sieht wie folgt aus:

Code: Alles auswählen

QItemSelectionModel selection(model);
"model" ist vom Typ QDirModel.

Noch eine kleine Anmerkung: Ich deklariere meine Qt-Klassen nicht mit "new" (weil ansonsten Memory Leaks enstehen). Bis jetzt hat das immer geklappt.

Was kann ich jetzt machen?
Oder hat jemand ein besseres Beispiel?

[Qt 4.3.3, Linux]

Verfasst: 15. Februar 2008 17:10
von VuuRWerK
Ja, da wirst Du Dich wohl überwinden müssen und mal einen Pointer verwenden, denn der Konstruktor von QItemSelectionModel erwartet nun mal einen Pointer und kein Objekt.

Zumal "Memory Leaks" nur dann entstehen wenn Du die Pointer nicht ordnungsgemäß wieder "löschst" aber das liegt nun mal ganz in der Hand des Programmierer und nicht in der Hand einer CPU, eines Hauptspeichers oder des Compilers.

Vielleicht solltest Du Dir noch ein gutes Buch über C/C++ und Pointer anschauen und so Deine "unbegründete Angst" überwinden ;)

Gut Schuß
VuuRWerK ;)

Verfasst: 15. Februar 2008 17:36
von D.Cent
Nagut, ich habe den Code jetzt mal 1 zu 1 übernommen.

Danke für den Tip.. Das mit dem "delete" hatte ich schon wieder fast vergessen ^^

Verfasst: 15. Februar 2008 17:38
von upsala
Wobei delete in Qt-Programmen eigentlich so gut wie nicht mehr notwendig ist. Aber dazu sollten beide hier mal die Doku zu QObject lesen...

Verfasst: 15. Februar 2008 22:42
von VuuRWerK
Hab schon gelesen ;)

Ich weiß das die Angabe der Parents bei jedem Widget mir die Arbeit des "deleten" des Pointers abgenommen wird da der Pointer durch den hierarischen Aufbau in Qt mit "deletet" wird.

Mein Antwort bezog sich auf die allgemeine "Angst" von D.Cent durch die Benutzung von Pointern.

Gut Schuß
VuuRWerK ;)