• 4264阅读
  • 4回复

[提问]文字逐个出现的特效,效率问题 [复制链接]

上一主题 下一主题
离线ninsun
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-17
我想实现一个将一段文字逐个文字的出现的特效。
使用QTextCursor向QTextDocument逐个增加文字,已经可以简单的实现了。
不过,因为我是使用的QTimer控制两个文字出现之间的间隔,所以有一个时间上的最小间隔时间问题……所以那种可以非常迅速的将一段文字逐个显示出来的效果依旧无法实现……使用200ms间隔都无法达到每秒中显示5个汉字的效率……
虽然曾经幻想现将文字绘制到图片上,然后逐步显示图片……可是却觉得这么做不会比之前的更快……而且实现起来也会很麻烦……(可能吧……我还没有做过实验……)
有没有其他的实现方法呢?使用别的方式实现,或者有支持更小时间间隔的方法都可以……又或者……是否已经有了什么现成的方法来实现这个特效呢?
离线jdwx

只看该作者 1楼 发表于: 2011-09-17
回 楼主(ninsun) 的帖子
如果是一个字一个字的增加(打字效果),不会那么没效率。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 2楼 发表于: 2011-09-17
其实我想这个是因为QTimer的精度问题,200ms是个挺大的间隔了,控制精度应该不高。
我一般是用QTimeLine来实现比较高精度的间断触发,封装好了跟QTimer使用起来差不多。
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线cutemmll
只看该作者 3楼 发表于: 2011-09-18
如果只是为了每200ms触发一次事件的话,可以考虑使用
  1. int QObject::startTimer ( int interval )

以及重载
  1. void QObject::timerEvent ( QTimerEvent * event ) [virtual protected]

来实现
c------------enjoy qt & enjoy life-----------++
离线ninsun

只看该作者 4楼 发表于: 2011-10-11
今天测试了一下……
QObject的事件比QTimer的信号槽触发要有效率的多……
使用了timerEvent,果真十分十分有效。
多谢各位提醒啦
快速回复
限100 字节
 
上一个 下一个