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.
QTreeview: Auswahl herausfinden
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
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
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
Also braucht es gar keinen Umweg sondern ich kann einfach QTreeView::currentIndex() verwenden.
Trotzdem vielen Dank.
Der Button und das TreeView befinden sich in der selben Klasse => Sie können direkt aufeinander zugreifen
Also braucht es gar keinen Umweg sondern ich kann einfach QTreeView::currentIndex() verwenden.
Trotzdem vielen Dank.