QTimeLine 控制动画

本文介绍了如何利用QTimeLine在Qt中创建动画,通过示例展示了如何控制进度条以余弦规律变化,详细列出了QTimeLine提供的不同动画曲线类型,包括EaseInCurve、EaseOutCurve、EaseInOutCurve、LinearCurve、SineCurve和CosineCurve。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QTimeLine顾名思义表示一条时间线,即一个时间序列,该时间序列会按我们实现定义好的间隔一步一步的往前变化,并在每次变化时都会发出一个frameChanged()信号。所以,我们通常会使用该类来驱动我们的动画。

下面,我们使用该类,来驱动一个进度条的变化。

新建一个GUI程序,在窗口中拖入一个按钮和一个进度条。当点击按钮时,开始改变进度条的值。

直接来看按钮的槽函数:

void Widget::on_pushButton_clicked()
{
    //创建对象
    QTimeLine *timeLine = new QTimeLine(10000, this);
    //设置变化模式,此处选择余弦形式
    timeLine->setCurveShape(QTimeLine::CosineCurve);
    //设置帧范围
    timeLine->setFrameRange(0, 100);

    connect(timeLine, SIGNAL(frameChanged(int)), ui->progressBar, SLOT(setValue(int)));
    //开始动画
    timeLine->start();
}
由于进度条的默认范围是0-100,所以我们也将帧范围设为0-100,便于观察。

运行程序如下:

当点击开始按钮后,可以看到进度条的值在0-100之间,已余弦规律变化,最后停在49%。

至于其他的变化模式,大家可以自己逐个实验,选择一个符合项目需求的即可。每一个模式在QTimeLine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值