QTreeview: Auswahl herausfinden

Verschiedenes zu Qt
Antworten
WishMaster
Beiträge: 14
Registriert: 6. April 2007 11:31

QTreeview: Auswahl herausfinden

Beitrag von WishMaster »

Hallo,
ich stehe vor einer eigentlich einfachen Aufgabe: Ich habe ein QTreeView das mit einem QStandardItemModel verbunden ist.
Jetzt möchte ich, dass wenn der Benutzer auf einen QPushButton klickt, die aktuelle Auswahl im TreeView angezeigt wird.

Ich habe versucht, über den SignalMapper beim klicken auf den Button einen Pointer auf das TreeView zu übergeben, aber das funktioniert leider nicht.

Ich hoffe ihr habt Ideen - Danke schon mal im Voraus.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Du hast also ein TreeView, in welchem der User rumklicken (also Items markieren) kann? Dann soll er auf einen Button klicken, damit der Inhalt des Items angezeigt wird?
Wenn dem so ist:
Du hast sicher irgendwo ein Model (für dein View) rumliegen. In diesem sind die Daten gespeichert. Schreib dir einen SLOT, welcher in deinem Programmteil einen QModelIndex als Member speichert (z.B.: (slot) MyProg::saveIndex( const QModelIndex& index );). Diesen Slot verbindest du mit dem Signal des TreeViews (genauer: QAbstractItemView) -> (signal) activated( const QModelIndex& ) oder clicked( const QModelIndex& ).
Nun hast du in deiner Klasse den Index gespeichert. Der nächste Schritt ist simpel:
Auf Knopfdruck musst du nur noch das Item aus deinem Model holen und die darin enthaltenen Daten ausgeben.

Ich hoffe das hat geholfen.

Grüße
Franz

// kleiner Nachtrag:
Alternativ kannst du dir die Sache mit dem Button schenken und die angesprochenen SIGNALS (clicked() bzw activated()) mit einem Slot display() connecten. Dieser zeigt dann gleich an. Sparst dir den Umweg über den Button und der User freut sich über eine angenehmere Bedienbarkeit :)
WishMaster
Beiträge: 14
Registriert: 6. April 2007 11:31

Beitrag von WishMaster »

Ich hätte gestern nicht so lange an meinem Projekt weitermachen sollen; so spät kann man einfach nicht mehr denken.
Der Button und das TreeView befinden sich in der selben Klasse => Sie können direkt aufeinander zugreifen :D
Also braucht es gar keinen Umweg sondern ich kann einfach QTreeView::currentIndex() verwenden.

Trotzdem vielen Dank.
Antworten