Qt App hängt beim verändern der Fenstergröße unter Windows
-
Hi alle zsm,
ich habe eine cross plattform app mit QML GUI, welche unter Android, iOS, Mac und Windows läuft. Da die App auf unterschiedlichen Bildschirmgrößen läuft ist das komplette Layout responsive. Das funktioniert soweit auch alles perfekt außer unter Windows.
In 30 % der Fälle (ich habe noch nicht herausgefunden woran es genau liegt), hängt die App komplett sobald die Fenstergröße verändert wird bzw. das Programm maximiert wird. Wenn man lange genug wartet (ca. 1 min) fängt sich das Programm und alles läuft wieder normal weiter.
Die CPU Auslastung steigt dabei nicht wesentlich an, also liegt es mMn nicht an irgendwelchen aufwändigen Berechnungen / Animationen. Das Problem tritt, wie ich bisher feststllen konnte, nur unter Windows 10 auf. Wobei ich dazu sagen muss, dass ich nur zwei Win7 Rechner zum testen hatte, kann also Zufall sein.
Ich kompiliere das Programm unter Windows 10 mit MSVC2017 64bit. Getestet habe ich auch nur auf 64bit Systemen. Die release Version erstelle ich mit dem winqtdeploy-Tool.
Hat jemand eine Idee woran es liegen könnte bzw. hatte schonmal ähnliche Probleme? Fehlende Libs o.ä.?
Gruß,
wowalive -
Wenn die Oberfläche deines Programmes mit QML gemacht wurde, passiert die Berechnung&Zeichnen der Objekte glaube nicht über die CPU sondern die GPU.
Was sagt den deren Auslastung, wenn du die Fenstergröße änderst?
-
@jsulm Ja, wenn die Fensterbreite einen Breakpoint überschreitet, wechselt die gesamte Ansicht auf Master / Detail. Dazu aktiviere ich einen zweiten Stackview und lade eine neue Seite. Eigentlich nichts besonderes.
@J-Hilk Oh stimmt, da war doch was... Das muss ich demnächst mal checken. Leider kann ich das Problem bei mir daheim nicht reproduzieren, da es nur auf einigen Systemen auftritt.
Mich wundert es, dass bei einigen deutlich leistungsschwächeren Systemen das Maximieren problemlos funktioniert und bei anderen Systemen hängt sich das Programm schon bei der kleinsten Größenänderung auf (noch bevor der Breakpoint erreicht wird).