Seite 1 von 1

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

Verfasst: 2. März 2018 11:21
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

Re: QTreeWidget Zeile suchen und als current setzen

Verfasst: 2. März 2018 17:22
von Christian81
Die selektieren Items bekommt man mittels QTreeWidget::selectedItems()

Re: QTreeWidget Zeile suchen und als current setzen

Verfasst: 3. März 2018 09:57
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]);
                }

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

Verfasst: 3. März 2018 11:03
von Christian81
Ah, ok. Ja die Lösung ist korrekt. Prinzipiell kannst Du auch selbst den Baum durchlaufen. Mittels QTreeWidgetItem::childCount() und QTreeWidgetItem ::child().