Seite 1 von 1

QTableView Zugriff auf Elemente

Verfasst: 25. Mai 2009 16:25
von ifisi
Hallo Zusammen,

ich sitze gerade an dem Problem das ich nicht auf einzelne Elemente in meiner TableView zugreifen kann. Ich fülle meine tableview über ein QueryModel und jetzt möchte ich den Wert welchen ich selektiert habe darauf zugreifen und mit dem weiter arbeiten!

Gruß
Fisi

Verfasst: 25. Mai 2009 18:50
von upsala
Dann empfehle ich dir als erst mal: Model/View Programming

Verfasst: 26. Mai 2009 11:26
von ifisi
Ok, ist es doch nicht so trivial! Danke für deine schnelle Antwort und dem Link.

Ich bin von einer Funktion getItemText(row,column) ausgegangen;-)

Gruß
fisi

Verfasst: 26. Mai 2009 11:33
von AuE
es ist trivial....lesen ;-)

Verfasst: 26. Mai 2009 12:14
von ifisi
da hast du recht! ;-)

Hab das so versucht, ich bekomme immer einen leeren String zurück wenn ich das so mache. Wo habe ich mich verlesen?

Code: Alles auswählen

    QAbstractItemModel * model = ui->tableView->model();
    int row =ui->tableView->currentIndex().row();
   QString text= model->index(row,0,ui->tableView->currentIndex()).data(QT::DisplayRole).toString();

Verfasst: 26. Mai 2009 12:25
von AuE
Du bauchst dir nicht nochmal speicher holen...du hast doch schon ein Modell!!


EDIT.... Warum machst du es dir so schwer..... model->Data will doch nen QModelIndex.... den liefert dir auch tableView.currentIndex.....

Code: Alles auswählen

  QString text = ui.tableView->model()->data(ui.tableView->currentIndex()).toString();

Verfasst: 26. Mai 2009 12:55
von ifisi
Danke!

Woher bekomme ich das QSqlQueryModel, wenn ich das von der TableView nehme hab ich ja wieder ein AbstractItemModel!
Muss ich jetzt zuerst wieder ein Query absetzen, oder gibt es da ein cleverer Trick?

Verfasst: 26. Mai 2009 13:28
von AuE
MODEL/VIEW Programming! Das Model hat die Daten der query!!!!!

Du kommst mit oben geposteten Snippet ganz einfach an die Daten deines model!

Verfasst: 26. Mai 2009 13:36
von ifisi
Ich danke dir AuE, so tuts!!

Da fehlt mir beim M/V doch noch einwenig das Verständnis!

Verfasst: 26. Mai 2009 13:49
von AuE

Code: Alles auswählen

if (lesen)
wissen++;

Verfasst: 26. Mai 2009 21:34
von upsala

Code: Alles auswählen

ui.tableView->currentIndex().data().toString();