简述

上节讲述了关于QPropertyAnimation实现等待提示框的显示,本节我们使用另外一种方案来实现-使用定时器QTimer,通过设置超时时间定时更新图标达到旋转效果。

效果

资源

需要几张不同阶段的图标进行切换,这里使用8张。

源码

QTimer通过setInterval设置100毫秒超时时间,每隔100毫秒后进行图标的更换,达到旋转效果。

MainWindow::MainWindow(QWidget *parent)
: CustomWindow(parent),
m_nIndex(1)
{
m_pLoadingLabel = new QLabel(this);
m_pTipLabel = new QLabel(this);
m_pTimer = new QTimer(this); m_pTipLabel->setText(QString::fromLocal8Bit("拼命加载中...")); // 设定超时时间100毫秒
m_pTimer->setInterval(100);
connect(m_pTimer, &QTimer::timeout, this, &MainWindow::updatePixmap); startAnimation();
}
// 启动定时器
void MainWindow::startAnimation()
{
m_pTimer->start();
} // 停止定时器
void MainWindow::stopAnimation()
{
m_pTimer->stop();
} // 更新图标
void MainWindow::updatePixmap()
{
// 若当前图标下标超过8表示到达末尾,重新计数。
m_nIndex++;
if (m_nIndex > 8)
m_nIndex = 1; QPixmap pixmap(QString(":/Images/loading%1").arg(m_nIndex));
m_pLoadingLabel->setPixmap(pixmap);
}

更多参考

最新文章

  1. js中获取窗口高度的方法
  2. 6个奇葩的(hello,world)C语言版(转)
  3. Hadoop2.6.0安装 — 集群
  4. 快速上手php:使用PhpStrom部署项目
  5. fibonacci 数列及其应用
  6. 树莓派安装3.5inch RPi LCD (A)显示屏
  7. java 反编译插件 JD-Eclipse 和 JD-IntelliJ
  8. [BZOJ 1733] [Usaco2005 feb] Secret Milking Machine 【二分 + 最大流】
  9. bzoj 1912 : [Apio2010]patrol 巡逻 树的直径
  10. Meta标签中的属性及含义
  11. Java Runtime.exec()的使用
  12. uby on rails 用户密码加密
  13. Android.os.SystemClock
  14. EBS server log日志
  15. Intellij IDEA的下载和使用(针对学生的免费使用计划)
  16. 导出toolStrip1中的图标
  17. libvirt的security
  18. pathon 基础学习-集合(set),单双队列,深浅copy,内置函数
  19. 2012Google校园招聘笔试题
  20. 在线客服 分享 qq 一键加好友 一键入群

热门文章

  1. My97日历控件常用功能记录
  2. YTKNetwork
  3. 树链剖分 - BZOJ 1036: [ZJOI2008]树的统计Count
  4. HDOJ 1398 Square Coins 母函数
  5. PHP-Java-Bridge使用笔记,2014年9月最新版
  6. ***RESTful API 设计指南(阮一峰)
  7. WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发
  8. java理论基础学习三
  9. Spring MVC 教程,快速入门,深入分析(转)
  10. Properties读取资源文件的四种方法