1.闹钟(错的)
#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化定时器objTimer = new QTimer(this);xinhao = new QTimer(this);// 连接定时器的 timeout 信号到槽函数connect(objTimer, &QTimer::timeout, this, &Widget::timeout_slot);connect(xinhao, &QTimer::timeout, this, &Widget::timeout_slot1);// 启动 objTimerobjTimer->start(1000); // 每 1000 毫秒触发一次}Widget::~Widget()
{delete ui;
}void Widget::on_a_clicked()
{if (ui->a->text() == "启动"){QString userTimeStr = ui->mytime->text().trimmed();QTime userTime = QTime::fromString(userTimeStr, "hh:mm:ss");if (userTime.isValid()){xinhao->start(1000); // 启动 xinhao 定时器QMessageBox::information(this, "提示", "闹钟已启动!");}else{QMessageBox::warning(this, "错误", "请输入有效的时间格式 (hh:mm:ss)!");}}
}void Widget::on_b_clicked()
{if (ui->b->text() == "取消"){xinhao->stop(); // 停止 xinhao 定时器QMessageBox::information(this, "提示", "闹钟已取消!");}
}void Widget::timeout_slot()
{// 获取当前系统时间并显示QTime systime = QTime::currentTime();QString msg = systime.toString("hh:mm:ss");ui->systime->setText(msg);
}void Widget::timeout_slot1()
{// 获取用户输入的时间QString userTimeStr = ui->mytime->text();QTime userTime = QTime::fromString(userTimeStr, "hh:mm:ss");// 获取当前系统时间QTime systime = QTime::currentTime();// 比较时间if (systime == userTime){// 在 ui->c 中显示文本ui->c->setText("时间到了!");xinhao->stop(); // 停止闹钟}}