Eigene View

Alles rund um die Programmierung mit Qt
Antworten
zwutz
Beiträge: 14
Registriert: 20. November 2007 09:13

Eigene View

Beitrag von zwutz »

Hallo zusammen,

ich hock seit einiger Zeit an einer eigenen "View", da wir hier einige besondere Anforderungen an die Darstellung haben, die die Standard-Views leider nicht bieten (auch ableiten bringt nix)

Im Grunde besteht das ganze aus mehreren, untereinander in einem Layout eingefügten Items, die man auf- und zuklappen kann.

Eingeklappt sieht das ganze so aus:
Bild

und ausgeklappt so:
Bild

ihr seht also, dass die Anforderungen etwas speziell waren... deswegen auch die selbstgestrickte View

Jedes einzelne Textfeld ist dabei von QWidget abgeleitet, da einige Events behandelt werden müssen (Klick- und Paintevents z.B.). Dazu einige Layouts

Es funktioniert soweit wunderbar und man kann damit arbeiten, allerdings hat ein Extremtest mit >5500 Zeilen (pro Zeile 3 Layouts) und insgesamt knapp 600.000 Widgets einige Schwächen stark zum Vorschein gebracht... das Laden dauert ewig (was aber auch an der Bibliothek dahinter liegen kann... da wird man also nicht viel machen können).
Aber auch das aus- und einklappen ist alles andere als flüssig (Profiler gibt aber grünes Licht... also auch kein Angriffspunkt vorhanden). Dazu kommt ein Speicherverbrauch von >500MB.

Meine Frage daher: Wie kann man das besser lösen? Hat jemand von euch schonmal ein ähnliches Problem gehabt und lösen können?

Danke für jeden Hinweis :)
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Vor das Performanceproblem kommst du auch schon mit QTreeView oder QTablöeView alleine. Das wurde auch schon vielfach diskutiert und es gibt da leider kein Heilmittel.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Natürlich gibt es ein Heilmittel. Wenn ich eine View auf eine Datenbank habe, dann lade ich mir auch nicht die ganze DB in den Speicher und packe schon mal alles in Widgets, weil sie ja vielleicht mal angezeigt werden. Wie das genau realisiert werden muss, hängt von den Anforderungen ab, aber der Weg sollte damit aufgezeigt sein.
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Beitrag von chrootdev »

Ich glaube das was du suchst heißt "fetch"!
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

macman hat geschrieben:Natürlich gibt es ein Heilmittel. Wenn ich eine View auf eine Datenbank habe, dann lade ich mir auch nicht die ganze DB in den Speicher und packe schon mal alles in Widgets, weil sie ja vielleicht mal angezeigt werden. Wie das genau realisiert werden muss, hängt von den Anforderungen ab, aber der Weg sollte damit aufgezeigt sein.
Entweder hast du mich missverstanden oder du hast selbst noch kein View mit vielen Elementen genutzt. Klar wird es bei ihm mit der Ladedauer an etwas anderem liegen, jedoch dauert auch sonst das Scrollen und Neuzeichnen sehr lange.
In dem Fall sollte man schauen, Möglichkeiten zu finden das angezeigte durch Drop Down Felder weiter einzuschränken.
Antworten