QPainter ab Qt 5.6.0 langsam
Verfasst: 16. Juni 2016 21:23
Hallo,
seit Qt 5.6.0 laufen die Grafikanimationen meines Qt Desktop Programms unter Windows 10 64 bit sehr langsam. Das gleiche Programm läuft unter Qt 5.4.2, Qt 5.5.0 und Qt 5.5.1 einwandfrei, unter Qt 5.6.0, Qt 5.6.1 und Qt 5.7.0 jedoch mindestens 100% langsamer. Egal ob der MinGW Compiler in 32bit oder der Microsoft Compiler in 32bit oder 64bit verwendet werden. Als IDE wird Qt Creator benutzt.
Die Grafik Animationen sind der einzige zeitkritische Programmteil. Gut möglich dass das Problem nur dort auffällt, aber an ganz anderer Stelle liegt.
Die Grafik Animation wird über QWidget mit QPainter mit ca. 100 x drawText() und 400 x drawLine() Funktionen realisiert, die über einen PushButton mit gedrückter Maustaste in Bewegung gesetzt und gehalten wird. Beim Pushbutton ist "autorepeat" aktiviert und "autorepeatinterval" = 0. Der gesammte Bildschirm wird also ca. alle 0.1 Sekunden neu gezeichnet.
Ein Verständnisproblem habe ich bei der Grafiktreiber Ansteuerung, da mir nicht klar ist womit mein Programm letztlich ausgeführt wird (ANGLE oder OpenGL?). Kann der Fehler eventuell damit zusammenhängen? Für Qt ist bislang keine Enviroment Variable gestetzt, auch in der Qt Project Datei (*.pro) wurden bei den Tests zwischen den verschiedenen Qt Versionen keine Änderungen vorgenommen (ein OpenGL Eintrag ist dort nicht). Grafikhardware ist eine alte ATI Radeon HD 3600 mit Directx 10.1.
Hat jemand eine Idee, warum das gleiche Programm, ab Qt 5.6.0 plötzlich so langsam läuft?
seit Qt 5.6.0 laufen die Grafikanimationen meines Qt Desktop Programms unter Windows 10 64 bit sehr langsam. Das gleiche Programm läuft unter Qt 5.4.2, Qt 5.5.0 und Qt 5.5.1 einwandfrei, unter Qt 5.6.0, Qt 5.6.1 und Qt 5.7.0 jedoch mindestens 100% langsamer. Egal ob der MinGW Compiler in 32bit oder der Microsoft Compiler in 32bit oder 64bit verwendet werden. Als IDE wird Qt Creator benutzt.
Die Grafik Animationen sind der einzige zeitkritische Programmteil. Gut möglich dass das Problem nur dort auffällt, aber an ganz anderer Stelle liegt.
Die Grafik Animation wird über QWidget mit QPainter mit ca. 100 x drawText() und 400 x drawLine() Funktionen realisiert, die über einen PushButton mit gedrückter Maustaste in Bewegung gesetzt und gehalten wird. Beim Pushbutton ist "autorepeat" aktiviert und "autorepeatinterval" = 0. Der gesammte Bildschirm wird also ca. alle 0.1 Sekunden neu gezeichnet.
Ein Verständnisproblem habe ich bei der Grafiktreiber Ansteuerung, da mir nicht klar ist womit mein Programm letztlich ausgeführt wird (ANGLE oder OpenGL?). Kann der Fehler eventuell damit zusammenhängen? Für Qt ist bislang keine Enviroment Variable gestetzt, auch in der Qt Project Datei (*.pro) wurden bei den Tests zwischen den verschiedenen Qt Versionen keine Änderungen vorgenommen (ein OpenGL Eintrag ist dort nicht). Grafikhardware ist eine alte ATI Radeon HD 3600 mit Directx 10.1.
Hat jemand eine Idee, warum das gleiche Programm, ab Qt 5.6.0 plötzlich so langsam läuft?