PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gtk C treeview expanded path merken



MBoerner
24-05-2012, 11:04
Hallo!
Ich arbeite mit GTK 3 und glade.

1) ich lade aus einem Mikroprozessor Parameter ein und stelle sie als treeview mit treestore dar, so dass ich die Werte editieren kann udn das ganze baumförmig angezeigt wird.

Wenn ich die Daten aber erneut laden will, muss ich alle Zeilen löschen und die Parameter neu einlesen. Dann erscheint der neue treeview zugeklappt.

Ich würde aber gern haben, dass alle aufgeklappte paths automatisch wieder aufgeklappt bleiben.

Ist es möglich, sie sich zu merken?

2) mit welchen Befehle kann ich am Schlauesten den Baum durchsuchen?

Danke schön im Voraus

MBoerner

anda_skoa
27-05-2012, 13:53
Falls du mit erneut laden meinst, dass das Programm während dessen an sich weiter läuft, dann könnte ein Update der Daten möglich sein.

D..h im Treestore nur die Änderungen einpflegen und dem Treeview dadurch zu ermöglichen seinen Zustand intern zu behalten und nur Datendarstellungen zu ändern.

Ciao,
_

MBoerner
29-05-2012, 08:59
Ich werde nicht mehr alles löschen und neu aufbauen sondern die angezeigten Werte verändern, dann behält der Baum seine Ansicht.

Ich hatte aber noch eine Frage:
In meinem Baum steht für jeden Parameter einmal die Parmeter ID (eindeutig) und den Parameterwert.
Wie kann ich gezielt im Treestore nach einer Parameter-ID suchen? Sowas wie find/search gibt es nicht oder? Ich muss den Baum ganz durchlaufen und aufhören, wenn ich es gefunden habe?
Danke für die Antworten
MBoerner

anda_skoa
31-05-2012, 10:38
Ich weißt jetzt nicht wie dieser TreeStore intern organisiert ist, aber wenn dort sowas wie stabile Referenzierung möglich ist, dann könntest du zusätzlich zum TreeStore eine Hashmap oder ähnliches verwenden, um von einem Schlüssel auf die Referenz des entsprechenden Elements zu kommen.

MBoerner
31-05-2012, 10:47
es klappt jetzt ganz gut, die Hashtabelle ist auch eine gute idee, ich mache es aber erstmal nur indem ich den Bauzm durchlaufe.
danke für die Hilfe
MBoerner