Seite 1 von 1
Treeview und Tabelle
Verfasst: 31. Oktober 2007 10:15
von D_ron
Hallo zusammen!
Ich habe eine TreeView mit einem eingenen Modell.
Je nachem welches Item ich in der TreeView anklicke soll in einer Tabelle die entsprechenden Daten zu diesem Item angezeigt werden.
Könnt Ihr mir bitte sagen wie man da genau vorgeht?
Bin noch nicht so fit in Qt

Verfasst: 31. Oktober 2007 10:48
von Korgen
Hi,
zunächst einmal würde ich dir die Hilfe zu Signals&Slots, QItemSelectionModel und QModelIndex empfehlen.
wenn ich das richtig verstehe solltest du das currentChanged Signal des SelectionModels des TreeView mit einem eigenen Slot verbinden, der dann die Daten anzeigt.
Irgendwie so in der richtung:
connect ( ui.TreeView->selectionModel(), SIGNAL ( currentChanged ( const QModelIndex & , const QModelIndex & ), this, SLOT ( onCurrentChanged( const QModelIndex &, const QModelIndex & ) ) );
void myClass::onCurrentChanged( const QModelIndex &selected, const QModelIndex &deselected)
{
QString stringDataOfSelection = selected.data().toString();
ui.LineEdit->setText( stringDataOfSelection );
}
dann sollte ui.LineEdit nach einem Klick auf den Tree die Daten, die hinter dem Index im Tree liegen (falls sie in einen String konvertiert werden können) anzeigen.
Grüße
Verfasst: 31. Oktober 2007 12:19
von upsala
Event. wäre auch der QDataWidgetMapper noch was für dich. Ansonsten hat Korgen schon recht, befasse dich mal mit dem QItemSelectionModel.
Verfasst: 31. Oktober 2007 15:11
von nando
QItemModel ist schon der richtige Ansatz.
Aber wenn du Deine Daten in einer TreeView darstellst, nehme ich an, dass sie verschachtelt sind, also nicht einfach tabelarisch...
du musst dann schauen, wie du die daten, bzw. welche daten du an eine QTableView lieferst....
Im Prinzip hast du ja in irgend einer Form deine gesamten Daten in dem Modell gespeichert. Wenn jetzt eine Anfrage von der View commt (data methode), dann musst du, falls du verschachtelte Daten hast die richtigen in tabelarischer Form liefern....
Gruss,
Nando