Alles rund um die Programmierung mit Qt
law.skynet
Beiträge: 32 Registriert: 17. April 2007 23:01
Beitrag
von law.skynet » 13. August 2007 22:18
hi,
und hier ist schon mein neues qt problem
ich habe eine qtreeview und will dort ein die daten eines selektieren items auslesen.
dazu habe ich folgendes gemacht:
Code: Alles auswählen
QModelIndex index = treeView->currentIndex();
QStandardItem *item = model->itemFromIndex(index);
QString editText = item->text();
aber igendwie bekomm ich immer nur ein seg fault....
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 14. August 2007 09:11
If index is an invalid index, this function returns 0.
Ich würde auf jeden Fall mal abfragen, ob 'item' überhaupt gültig ist. Nicht, daß diese Funktion aufgerufen wird, wenn noch gar nichts ausgewählt ist.
law.skynet
Beiträge: 32 Registriert: 17. April 2007 23:01
Beitrag
von law.skynet » 14. August 2007 09:22
ich habe es inzwischen so gelöst:
Code: Alles auswählen
QModelIndex index = treeView->currentIndex();
QVariant tmp = treeView->model()->data(index, Qt::UserRole);
QString content = tmp.toString();
qDebug() << "dbg: " << content;
Das funktioniert auch. wenn ich die richtige spalte wähle. aber wie lese ich damit sämtliche spalten einer reihe aus?
wie can ich den index um eine spalte weiter setzen?
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 14. August 2007 12:22
Schau dir mal die Doku zu QModelIndex an, es gibt z.B. die Möglichkeit mit sibling(...) die Spalten 'daneben' auszuwählen. Oder die Doku von QItemSelectionModel selectedIndexes() um alle ausgewählten Indexe zu bekommen.
law.skynet
Beiträge: 32 Registriert: 17. April 2007 23:01
Beitrag
von law.skynet » 14. August 2007 12:24
und hier die rätsels lösung
Code: Alles auswählen
QModelIndex index = treeView->currentIndex();
QModelIndex idxTitle = treeView->model()->index(index.row(), 0);
QModelIndex idxDirector = treeView->model()->index(index.row(), 1);
QModelIndex idxDate = treeView->model()->index(index.row(), 2);
QVariant tmpTitle = treeView->model()->data(idxTitle, Qt::DisplayRole);
QVariant tmpDirector = treeView->model()->data(idxDirector, Qt::DisplayRole);
QVariant tmpDate = treeView->model()->data(idxDate, Qt::DisplayRole);