// 倒计时提示框函数,可直接调用
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();
}

06-27
907
907
04-14
1156
1156

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



