Ungewöhnlich hohe CPU Auslastung bei QDialog
Verfasst: 29. August 2011 21:23
Hallo,
ich habe in einer Applikation unter QT 4.7 eine ungewöhnliche CPU Last nach öffnen eines QDialogs.
Ungewöhnlich deshalb, weil die hohe Last nur dann auftritt, wenn das QDialog-Fenster vor einem QSplitter geöffnet wird.
In diesem QSplitter wird jeweils ein QTreeWidget platziert, also links eins und rechts eins. Werden im rechten QTreeWidget jetzt Items geladen und darüber der Dialog geöffnet, steigt die CPU Last um rund 30%
Verschiebe ich das Dialog-Fenster mit der Mouse zu annähernd 100% in die linke Hälfte des Splitters (bzw. vor den zweiten QTreeWidget) sinkt die Last wieder.
Der Dialog kann Programmweit geöffnet werden, das Phänomen tritt nur vor dem gefüllten QTreeWidget auf. (--> Dialog ist in Ordnung)
Setze ich über die WindowFlags das Fenster auf Qt::CustomizeWindowHint bleibt alles im grünen Bereich .
Kann mir das jemand erklären. Fehler meinerseits kann ich fast ausschliessen
Ich sollte noch erwähnen das QT nur im (auf dem) Framebuffer läuft, bzw. mit -qws gestartet wird.
Dabei ist es egal ob die App auf dem Target läuft oder emuliert auf dem Host, das verhalten ist immer gleich.
Im Moment geht es nur um Denkanstösse, bzw. ob ähnliches bekannt ist.
Chris
ich habe in einer Applikation unter QT 4.7 eine ungewöhnliche CPU Last nach öffnen eines QDialogs.
Ungewöhnlich deshalb, weil die hohe Last nur dann auftritt, wenn das QDialog-Fenster vor einem QSplitter geöffnet wird.
In diesem QSplitter wird jeweils ein QTreeWidget platziert, also links eins und rechts eins. Werden im rechten QTreeWidget jetzt Items geladen und darüber der Dialog geöffnet, steigt die CPU Last um rund 30%
Verschiebe ich das Dialog-Fenster mit der Mouse zu annähernd 100% in die linke Hälfte des Splitters (bzw. vor den zweiten QTreeWidget) sinkt die Last wieder.
Der Dialog kann Programmweit geöffnet werden, das Phänomen tritt nur vor dem gefüllten QTreeWidget auf. (--> Dialog ist in Ordnung)
Setze ich über die WindowFlags das Fenster auf Qt::CustomizeWindowHint bleibt alles im grünen Bereich .
Kann mir das jemand erklären. Fehler meinerseits kann ich fast ausschliessen
Ich sollte noch erwähnen das QT nur im (auf dem) Framebuffer läuft, bzw. mit -qws gestartet wird.
Dabei ist es egal ob die App auf dem Target läuft oder emuliert auf dem Host, das verhalten ist immer gleich.
Im Moment geht es nur um Denkanstösse, bzw. ob ähnliches bekannt ist.
Chris