一、效果演示
动画演示
二、代码详解
(1)首先准备两张图标,三张更好,可以使用画图工具擦除

(2)在.h文件中定义一个定时器和变量
QTimer *fantimer;
int fancurrentIconIndex = 1;
(3)在.cpp文件中,点击按钮开始定时器,定时器发出的timeout信号连接到更换图标槽函数中,并设置每0.5秒计时一次
fantimer = new QTimer(this);
fantimer->setInterval(50);
QObject::connect(fantimer, SIGNAL(timeout()), this, SLOT(changefanIcon()));
QObject::connect(this, SIGNAL(fanclicked()), fantimer, SLOT(start()));
(4)在更换图标槽函数中实现切换图标
void M0Wig::changefanIcon()
{
if(ui->kgBtn_2->isChecked())
{
// 根据当前图标索引切换至下一张图标
if (fancurrentIconIndex == 1) {
QPixmap pixmap("://rec/fan1.png");
QSize labelsize = ui->fslabel->size();
QPixmap Pixmap = pixmap.scaled(labelsize,Qt::KeepAspectRatio);
ui->fslabel->setPixmap(Pixmap);
fancurrentIconIndex = 2;
} else if (fancurrentIconIndex == 2) {
QPixmap pixmap("://rec/fan.png");
QSize labelsize = ui->fslabel->size();
QPixmap Pixmap = pixmap.scaled(labelsize,Qt::KeepAspectRatio);
ui->fslabel->setPixmap(Pixmap);
fancurrentIconIndex = 1;
}
}
}
(5)最后别忘了在关闭开关后,停止计时器,并设置初始图标
本文详细描述了如何使用Qt进行动画演示,通过定时器每0.5秒切换图标,展示了从.h和.cpp文件中定义和操作定时器以及图标切换的代码实现过程。
586

被折叠的 条评论
为什么被折叠?



