Qt之等待提示框(QTimer)

简介: 简述上节讲述了关于QPropertyAnimation实现等待提示框的显示,本节我们使用另外一种方案来实现-使用定时器QTimer,通过设置超时时间定时更新图标达到旋转效果。简述效果资源源码更多参考效果资源需要几张不同阶段的图标进行切换,这里使用8张。源码QTimer通过setInterval设置100毫

简述

上节讲述了关于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);
}

更多参考

目录
相关文章
|
4月前
|
API
【Qt】Qt定时器类QTimer
【Qt】Qt定时器类QTimer
|
5月前
|
Linux 图形学
深入理解Qt定时器:QTimer的魅力与挑战(一)
深入理解Qt定时器:QTimer的魅力与挑战
3546 0
|
5月前
|
安全 API 开发者
深入理解Qt定时器:QTimer的魅力与挑战(二)
深入理解Qt定时器:QTimer的魅力与挑战
416 0
|
5月前
|
安全
深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环(三)
深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环
149 0
|
5月前
|
存储 安全 程序员
深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环(二)
深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环
513 0
|
5月前
|
安全 测试技术 C++
深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环(一)
深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环
388 0
|
5月前
|
编解码 算法 Unix
【Qt 应用开发 】QT 三种定时器的介绍 以及 QTimer startTimer/Timerevent QBasicTimer 之间的区别
【Qt 应用开发 】QT 三种定时器的介绍 以及 QTimer startTimer/Timerevent QBasicTimer 之间的区别
890 0
Qt | 定时器的使用 QTimer
学习使用Qt定时器的用法。
945 0
|
UED Python Windows
Python Qt GUI设计:QTimer计时器类、QThread多线程类和事件处理类(基础篇—8)
Python Qt GUI设计:QTimer计时器类、QThread多线程类和事件处理类(基础篇—8)
Python Qt GUI设计:QTimer计时器类、QThread多线程类和事件处理类(基础篇—8)
|
Windows Linux iOS开发
Qt之QTimer
简述 QTimer类提供了重复和单次触发信号的定时器。 QTimer类为定时器提供了一个高级别的编程接口。很容易使用:首先,创建一个QTimer,连接timeout()信号到适当的槽函数,并调用start(),然后在恒定的时间间隔会发射timeout()信号。 注意:当QTimer的父对象被销毁时,它也会被自动销毁。 简述 详细说明 精度 替代QTimer
2306 0