一个倒计时关闭的提示对话框

// 倒计时提示框函数,可直接调用
void MainWindow::showCountdownMessageBox(const QString& title, const QString& text, int countdown)
{
    // 1. 创建提示框,设置为信息类型
    QMessageBox msgBox;
    msgBox.setWindowTitle(title);
    msgBox.setText(text);
    msgBox.setIcon(QMessageBox::Information);

    // 2. 添加确定按钮,并设置初始倒计时文本
    QPushButton* okBtn = msgBox.addButton(QMessageBox::Ok);
    okBtn->setText(QStringLiteral("确定(%1)").arg(countdown));
    okBtn->setEnabled(true); // 可选:若要倒计时结束前禁用按钮,设为false

    // 3. 创建定时器,每秒触发一次
    QTimer timer;
    timer.setInterval(1000); // 1000ms = 1秒

    // 4. 定时器槽函数:更新倒计时文本
    QObject::connect(&timer, &QTimer::timeout, &msgBox, [&]() {
        countdown--;
        if (countdown > 0) {
            okBtn->setText(QStringLiteral("确定(%1)").arg(countdown));
        } else {
            timer.stop(); // 倒计时结束,停止定时器
            okBtn->setText("确定"); // 恢复按钮文本
            msgBox.close();
        }
    });

    // 5. 启动定时器
    timer.start();

    // 6. 显示提示框(阻塞式,直到用户点击确定)
    msgBox.exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木千

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值