[Development] DockAreaWidget and QGLWidget update / repaint / paintEvent

Renaud renaud.guezennec at gmail.com
Thu Sep 4 17:26:32 CEST 2014


Hi All,

I'm working on porting huge applications from Qt4(.7.2) to Qt5.(3.0).

The applications use massively QGLWidget (and openGL).

On Qt4, it works perfectly. On Qt5, I got some issues:

1/The applications have many mechanisms which start from
MouseMoveEvent to updateGL() the QGLWidget (selection, rubber,
translation, rotate, scale of 3D objects).
On Qt5, we noticed slowness on this kind of user interaction. The
mouseMoveEvent was linked to updateGL() calls. I changed them to
update() calls and I fixed the problem. I can 't understand how it
could work on Qt4.

2/ But, we still got issues about QDockWidget. When QDockWidget are
floating and moving, they cause all OpenGL views to update. That send
a lot of paint events which really slow down the application.

There are two possibilities:
The rendering is slower than before or Qt5 receives more events
(MouseMouveEvent, QPaintEvent).

How can I prevent the system to receive so many paintEvents while
QDockWidget are moving above QGLWidget ?

Thanks!



More information about the Development mailing list