当前位置: 首页 > news >正文

12月12日作业

设计一个闹钟

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimerEvent>
#include <QTime>
#include <QTime>
#include <QTextToSpeech>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void timerEvent(QTimerEvent *e);  //对基类中的虚函数重写
private slots:void on_btn_clicked();private:Ui::Widget *ui;int id1;  //定时器idint id2;  //闹钟idQTextToSpeech *speecher;
};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);id1 = startTimer(1000);  //启动id1定时器speecher = new QTextToSpeech(this);
}Widget::~Widget()
{delete ui;
}//定时器超时时,自动执行的代码
void Widget::timerEvent(QTimerEvent *e)
{//判断定时器if(e->timerId() == id1){//获取系统时间QTime sys_time = QTime::currentTime();//将系统时间转换QString s = sys_time.toString("hh:mm:ss");//将取到的时间放入label1中ui->label1->setText(s);//居中显示ui->label1->setAlignment(Qt::AlignCenter);}else if(e->timerId() == id2){//每秒判断一次,时间相同时做出反应if(ui->edit->text() == ui->label1->text()){ui->label3->setText("只要学不死,就往死里学");for(int i = 0;i < 5;i++){speecher->say(ui->label3->text());}}}
}
//启动按钮按下后的进行处理的槽函数
void Widget::on_btn_clicked()
{id2 = startTimer(1000);  //启动id2定时器
}

效果演示

思维导图

相关文章:

  • 2024年AI云计算专题研究报告:智算带来的变化
  • 黑客应该从小抓起
  • linux 中crontab 定时任务计划创建时间文件夹示例
  • C语言leetcode集训一:数组
  • Centos7、Mysql8.0 load_file函数返回为空的终极解决方法--暨selinux的深入理解
  • AI工具导航网站(包含写作、翻译、设计、论文润色去重的AI工具集)
  • Command ‘npm‘ not found, but can be installed with:sudo apt install npm 解决方案
  • Ubuntu22.04中用户的全名
  • RabbitMQ使用指南
  • C++学习笔记—— C++内存管理方式:new和delete操作符进行动态内存管理
  • Java解决二进制矩阵中特殊位置问题
  • 101基于matlab的极限学习机ELM算法进行遥感图像分类
  • YOLO_embedded: YOLO算法快速嵌入式部署
  • QT 重定向qdebug输出到自绘界面
  • Docker资源控制
  • 自己简单写的 事件订阅机制
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 「面试题」如何实现一个圣杯布局?
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CentOS从零开始部署Nodejs项目
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • css系列之关于字体的事
  • go append函数以及写入
  • Hexo+码云+git快速搭建免费的静态Blog
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Javascript编码规范
  • JavaScript对象详解
  • JAVA多线程机制解析-volatilesynchronized
  • JS实现简单的MVC模式开发小游戏
  • laravel 用artisan创建自己的模板
  • ReactNative开发常用的三方模块
  • swift基础之_对象 实例方法 对象方法。
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 动态魔术使用DBMS_SQL
  • 二维平面内的碰撞检测【一】
  • 嵌入式文件系统
  • 如何实现 font-size 的响应式
  • 数组的操作
  • 微信小程序实战练习(仿五洲到家微信版)
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Mac 上flink的安装与启动
  • 仓管云——企业云erp功能有哪些?
  • 说说我为什么看好Spring Cloud Alibaba
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #mysql 8.0 踩坑日记
  • (C++20) consteval立即函数
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式