我有一个关于如何在不强大的硬件(Atom N270 + Intel 945GSM)上使用Qt 4.5.3平滑字形文本的问题。我的方法如下:
一般来说,它移动顺畅。但是,我创建的字幕文本越多,它达到的CPU使用率就越高。当文本可以填充50%的屏幕(1920x1680)时,CPU使用率约为70-80%。文本动画变得有点闪烁。如果我将定时器间隔设置为50ms或更大,它将是平滑的。但文字移动太慢了。
我的方法无效吗?我要用OpenGL吗?任何提示都是受欢迎的,并提前感谢^^)
答案 0 :(得分:6)
您应该查看Graphics View框架。您可以将QGraphicsTextItem对象添加到QGraphicsScene,并设置视图的坐标(缩放和平移)以使文本移动并显示您想要的任何大小,包括将某些文本设置为“屏幕外”(在视图外) 。我希望这比每次定时事件复制和绘制QPixmap的(不同大小)部分更有效。
该文档指出Graphics View框架已经过优化,可以同时处理多个对象。如果结果不是更好,你可能想试试4.6 beta。图形视图渲染有优化。
顺便说一下,我会看看QTimeLine帮助你驾驶动画。除了经常提供基本的“滴答”之外,您还可以设置“曲线形状”,它们可以开始缓慢和加速,或者随着结束的进行而减速。请注意,如果要在finished()信号之后重新启动QTimeLine,如果更改持续时间并调用start()而不调用setCurrentTime(0),则计时器将以旧持续时间作为当前时间开始。