QT计时器

widget.h

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent> //计时器类
#include <QTime> //时间类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void timerEvent(QTimerEvent *e);//计时器函数

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::Widget *ui;
    int tid; 
    int naozhong;
    QTime time;
};
#endif // WIDGET_H

widget.cpp

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    tid = startTimer(1000);//启动计时器
    ui->naozhongEdit->setPlaceholderText("请输入闹钟时间");
    ui->naozhongEdit->setFont(QFont("Agency FB",20,50,false));
   

}

Widget::~Widget()
{
    delete ui;
}

void Widget::timerEvent(QTimerEvent *e)
{
    if(e->timerId() == tid)//系统时间的计时器事件
    {
        time = QTime::currentTime();//获取当前时间
        QString s = time.toString("hh:mm:ss");//将时间内容转换为qstring类型
        ui->sys_time_Lab->setText(s);//设置标签中内容
        ui->sys_time_Lab->setFont(QFont("Agency FB",80,50,false));//设置标签字体
        ui->sys_time_Lab->setAlignment(Qt::AlignCenter);//设置字体居中
    }
    if(e->timerId() == naozhong)//设置闹钟的计时器事件
    {
        time = QTime::currentTime();
        QString s = time.toString("hh:mm:ss");
        ui->sys_time_Lab->setText(s);
        if(s == ui->naozhongEdit->text())//如果系统时间与设置时间一致
        {
            ui->naozhongLab->setText("起床辣!!!!!");//显示内容
            ui->naozhongLab->setFont(QFont("Agency FB",60,50,false));//内容字体
        }
    }
}

void Widget::on_pushButton_clicked()
{
    naozhong = startTimer(1000);//点击开始设置naozhong计时器
}

void Widget::on_pushButton_2_clicked()
{
    killTimer(naozhong);//点击停止关闭naozhong计时器
}
相关推荐
会飞的胖达喵4 分钟前
Qt自动信号槽连接机制:深入解析与应用实践
开发语言·qt
无奈笑天下6 分钟前
银河麒麟V10虚拟机安装vmtools报错:/bin/bash解释器错误, 权限不够
linux·运维·服务器·开发语言·经验分享·bash
superman超哥9 分钟前
仓颉动态特性探索:反射API的原理、实战与性能权衡
开发语言·后端·仓颉编程语言·仓颉·仓颉语言·仓颉动态特性·反射api
程序员阿鹏15 分钟前
@Autowired和@Resource的区别
java·开发语言·spring
Halo_tjn17 分钟前
Java List集合知识点
java·开发语言·windows·算法·list
superman超哥23 分钟前
仓颉元编程之魂:宏系统的设计哲学与深度实践
开发语言·后端·仓颉编程语言·仓颉·仓颉语言·仓颉语言特性
玄同76539 分钟前
Python 数据类型:LLM 语料与 API 参数的底层处理逻辑
开发语言·人工智能·python·自然语言处理·llm·nlp·知识图谱
Slow菜鸟44 分钟前
Java基础 | 布隆过滤器
java·开发语言
比奇堡派星星1 小时前
Linux Hotplug 机制详解
linux·开发语言·驱动开发
molaifeng1 小时前
像搭积木一样理解 Golang AST
开发语言·后端·golang