A couple of thoughts.

> painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
Antialiasing makes the display look a lot better, but it does take a lot longer (compared to simply writing pixels) to perform.

If it were being done on the GPU, it shouldn't be a problem. But old hardware (you did say inherited), and/or a mis-configured library not taking advantage of your hardware, could mean that all this detailed pixel work is happening on the main CPU.


> painter.save();
How much work does a save/restore do?
In this example, it would seem the only thing you need to do "manually" is reset the window and rotation.

But if the two components don't overlap, then doing "Draw outer rim" before DrawAircraft would avoid having to do any save/restore at all.

If the static components of your widgets are intricate (lots of tick marks on circular dials for example), then perhaps consider rendering those to static bitmaps, then doing a single "blit" for the whole static image, then draw only the variable components.