QTimeLine类解释

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 

其实动画的本质就是在每一定时间间隔内显示一帧图像,当这个间隔较短的时候人眼就感觉不出来了,觉得看到的是连续的影像。Qt为开发动画效果的人员提供了一个很好的时间控制类QTimeLine.

 

QTimeLine的最简单用法是

 

1 QTimeLine timeline=new QTimeLine(1000);

2 timeLine->setFrameRange(0, 100);

3 connect(timeline,SIGNAL(frameChanged(int)),yourobj,SLOT(yourobjslot(int)));

4 timeline->start();

 

解释:

 

1. 创建的时间线持续时长,参数值是毫秒数,1000就是1秒

2. 在这段时间线内,创建的输出值范围。也就是第三行中frameChanged信号里传出的参数值范围

3. QTimeLine的默认时间间隔是40ms(也就是1秒25帧),每个间隔会发出一个frameChanged()的信号,此处将该信号连接到你能控制动画效果的对象和槽上。

4. 启动timeline后,每个时间间隔的frameChanged()信号才能正常发出。

 

 

当然还有一些复杂的参数设置可以更好的控制你的效果。

 

setLoopCount(int count)该函数控制了动画的重复次数。默认是1,如果设置成0则表示无限循环。

setUpdateInterval(int interval)该函数用于控制更新动画的时间间隔。

 



相当于设定了时间总数和单次时间的QTimer

是对QTimer的扩展,封装

另外提醒一下,有时候对间隔的设置可能达不到预定的次数,因为程序的执行效率无法达到这样的次数。所以对次数的设置 要合理!

举个例子吧:

    m_timeLine = new QTimeLine(1000);
    m_timeLine->setFrameRange(0,100);
    m_timeLine->setUpdateInterval(1);

这样的定时器,在1000ms内,只能重复执行了56次(有时候是55次).....以后用的时候注意!


补充:setFrameRange和setUpdateInterval没有直接关系,第一个是活动范围,后面的是间隔范围;使用的时候区分。

    m_timeLine->setFrameRange(0,100);
    m_timeLine->setUpdateInterval(1);

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 

你可能感兴趣的:(活动,扩展,qt,Signal)