[gelöst] QTreeWidget Zeile suchen und als current setzen

Alles rund um die Programmierung mit Qt
Antworten
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

[gelöst] QTreeWidget Zeile suchen und als current setzen

Beitrag von Tomaxx »

Hallo Zusammen

Ich habe in einem QTreeWidget Daten in einem Datensatz geändert und in die dahinter liegende SQLite Datenbank zurückgeschrieben.

Jetzt möchte ich die geänderten Daten im TreeWidget auch anzeigen.

Aktuell mache ich den Baum leer und lese ihn erneut ein. Klappt alles prima. Leider ist nach dem Neuaufbau kein Datensatz mehr als Current markiert. Wie kann ich einen Datensatz suchen und Current setzen? Ein Feld der Daten in dem TreeWidget enthält eine eindeutige ID. Kann ich danach suchen und den gefundenen Datensatz (der auf jeden Fall existiert) als Current markieren?

Danke

Thomas
Zuletzt geändert von Tomaxx am 3. März 2018 09:57, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QTreeWidget Zeile suchen und als current setzen

Beitrag von Christian81 »

Die selektieren Items bekommt man mittels QTreeWidget::selectedItems()
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

Re: QTreeWidget Zeile suchen und als current setzen

Beitrag von Tomaxx »

Nein, ich meinte wie ich selber einen Eintrag finde und auf Current setze.

Ich habs gelöst:

Code: Alles auswählen

                QString gesuchter_text = "Suchtext";
                qint32 suchspalte = 3;
                QList<QTreeWidgetItem *> itemList = ui->baumwidget->findItems(gesuchter_text, Qt::MatchRecursive, suchspalte);
                if (itemList.size() > 0){
                   ui->baumwidget->setCurrentItem(itemList[0]);
                }
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: [gelöst] QTreeWidget Zeile suchen und als current setzen

Beitrag von Christian81 »

Ah, ok. Ja die Lösung ist korrekt. Prinzipiell kannst Du auch selbst den Baum durchlaufen. Mittels QTreeWidgetItem::childCount() und QTreeWidgetItem ::child().
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten