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.
Daten aus QSqlQueryModel extrahiern
Die Zeile bekommst du per . Die Daten wie du schon festgestellt hast mit . Die QVariants die zurückgegeben werden kann man in den gewünschten Datentyp umwandeln.
Code: Alles auswählen
QModelIndexList QItemSelectionModel::selectedRows ( int column = 0 ) constCode: Alles auswählen
QVariant QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) constVielen 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
Vielen Dank für deine Antwort!
Gruß,
/dev
Du weist doch welche Columns du willst, oder? Nämlich 0 bis 4. Also für die 1. Spalte.
Code: Alles auswählen
model->index(row, 0).data();