Вы должны заглянуть в каркас графического представления. Вы можете добавить объекты QGraphicsTextItem в QGraphicsScene и установить координаты вида (масштабирование и перевод), чтобы ваш текст двигался и отображался в любом размере, в том числе с тем, чтобы часть текста была «вне экрана» (вне вида) , Я ожидал бы, что это будет намного эффективнее, чем копирование и рисование (изменяющегося размера) части QPixmap при каждом событии таймера.
В документации говорится, что платформа Graphics View оптимизирована для одновременной обработки множества объектов. Если это окажется не лучше, вы можете попробовать 4.6 бета. Для рендеринга графического представления предусмотрены оптимизации.
Кроме того, я бы посмотрел на QTimeLine за помощь в управлении анимацией. Помимо предоставления базовых «тиков» каждый раз, вы можете установить «кривые формы», которые могут начинаться медленно и ускоряться или замедляться по мере приближения к концу. Просто имейте в виду, что если вы хотите перезапустить QTimeLine после сигнала завершения (), если вы измените продолжительность и вызовите start () без вызова setCurrentTime (0), таймер запустится со старой продолжительностью в качестве текущего времени.