QTreeView Items auslesen

Alles rund um die Programmierung mit Qt
Antworten
law.skynet
Beiträge: 32
Registriert: 17. April 2007 23:01

QTreeView Items auslesen

Beitrag von law.skynet »

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 »

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 »

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 »

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 »

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);
Antworten