I noticed that the rendering occurs in a pixmap and that why I though of the thread possibility.
I will give it a try if I have enough time.

For the level of details, I though about it too. Indeed it was the second question of my previous post, but I removed it as I noticed what I need is a low pass filter with resampling... which is quite complicated !
I have tried to skip points, but it is really not appropriate for my data. I have tried to draw a point only if it is far enough of the previous one too. This last one works very well for some curves (~500 points instead of 120000 !) but not for all (~88000 points instead of 120000 which too big).

A related problem is that I retrieve my data directly from a QAbstractItemModel, which works with QVariants, and its seems really slow for this problem. I will try to implement a cache for my "double" values here to avoid the QVariant.