Qt 之等待提示框(QTimer)

简述

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

更多参考

展开阅读全文
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值