Seite 1 von 1

Daten aus QSqlQueryModel extrahiern

Verfasst: 12. Mai 2007 19:12
von Deever
Hey Amigos, wie geht's?

Ich habe ein QWidget mit einem QTableView, das Daten aus einem QSqlQueryModel darstellt. Auf dem QWidget hat es ferner ein QPushButton. Dem Tableview wurde SelectionMode=SingleSelection und SelectionBehaviour=SelectRows gesetzt. Jetzt möchte ich bei einem Klick auf den Button alle Daten der Zeile (5 Felder) extrahieren und mit ihnen (konkret typisiert, nicht als QVariant, wie bei model->data()) etwas anstellen. Wie ist das zu erreichen?

Vielen Dank für eure Antworten!
Gruß,
/dev

PS: Ich weiß, daß dies eine Anfängerfrage ist. Allerdings ist mir das MV-Konzept von Qt hier an einzelnen Stellen etwas zu abstrakt.

Verfasst: 12. Mai 2007 20:18
von upsala
Die Zeile bekommst du per

Code: Alles auswählen

QModelIndexList QItemSelectionModel::selectedRows ( int column = 0 ) const
. Die Daten wie du schon festgestellt hast mit

Code: Alles auswählen

QVariant QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) const
. Die QVariants die zurückgegeben werden kann man in den gewünschten Datentyp umwandeln.

Verfasst: 12. Mai 2007 21:12
von Deever
Vielen Dank für deine rasche Antwort! Leider ist mir nicht klar, was ich da für column übergeben soll? Da immer ganze Zeilen selektiert werden, will ich natürlich auch, daß die Indexes aller "Spalten" Felder zurückgegeben werden. Die QVariants gehen in Ordnung, eine imaginäre andere Lösung wäre vermutlich auch nicht einfacher und eleganter.

Vielen Dank für deine Antwort!
Gruß,
/dev

Verfasst: 12. Mai 2007 21:40
von upsala
Du weist doch welche Columns du willst, oder? Nämlich 0 bis 4. Also

Code: Alles auswählen

model->index(row, 0).data();
für die 1. Spalte.

Verfasst: 23. Mai 2007 09:47
von Deever
Vielen Dank! Das war's!

Gruß,
/dev