12月12日作业

news/2025/2/19 16:39:41/

设计一个闹钟

头文件

#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定时器
}

效果演示

思维导图


http://www.ppmy.cn/news/1266896.html

相关文章

【Vue】日常错误总结(持续更新)

日常遇到的小问题汇总, 内容小篇幅少的就全放这里了, 内容多的会在Vue专栏单独分享~ 目录 【Q】 el-form-item值为 null 或 undefined显示““ 【Q】dialog内组件数据刷新总是延迟慢一拍 问题背景描述 解决方案 代码简单模拟 JS 【Q】el-input 不能输入的解决办法 方法…

Flink State 状态原理解析 | 京东物流技术团队

一、Flink State 概念 State 用于记录 Flink 应用在运行过程中&#xff0c;算子的中间计算结果或者元数据信息。运行中的 Flink 应用如果需要上次计算结果进行处理的&#xff0c;则需要使用状态存储中间计算结果。如 Join、窗口聚合场景。 Flink 应用运行中会保存状态信息到 …

oracle sql 把2023/05/06格式化为20230506

oracle sql 把2023/05/06格式化为20230506 在 Oracle SQL 中&#xff0c;你可以使用 TO_CHAR 函数将日期格式化为指定的字符串格式。要将日期 ‘2023/05/06’ 格式化为 ‘20230506’&#xff0c;你可以使用以下查询&#xff1a; SELECT TO_CHAR(TO_DATE(2023/05/06, YYYY/MM/…

题目:肖恩的苹果林(蓝桥OJ 3683)

题目描述&#xff1a; 解题思路&#xff1a; 本题采用二分中的二分答案。枚举每一个最大距离&#xff08;i&#xff1a;1 ~ n&#xff09;以及他们至少能容纳的树木数&#xff08;上一题&#xff1a;跳石头-蓝桥OJ 364&#xff09; 判断二分内判断条件是>还是<以及是lmi…

unity 2d 入门 飞翔小鸟 柱子移动(十一)

c#脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class PoleMove : MonoBehaviour {//移动上限制public float up;//移动下限public float below;//速度private float speed;// Start is called before the first frame update…

《C++新经典设计模式》之第10章 迭代器模式

《C新经典设计模式》之第10章 迭代器模式 迭代器模式.cpp 迭代器模式.cpp #include <iostream> #include <vector> #include <list> #include <memory> using namespace std;// 遍历容器中的元素 // 迭代器单独实现为类模板&#xff0c;与容器模板解耦…

《影响力》读后感

《影响力》被某位我不曾听说过的著名营销专家推荐为从事营销、销售工作的人必读的五本书之首&#xff0c;读完之后&#xff0c;确实有一种茅塞顿开、醍醐灌顶的感觉。原先&#xff0c;很多时候我们不是被别人算计了&#xff0c;而是被自我的思维局限或者是来自社会的强大影响力…

yolov5当检测到特定物体时发出警报声音

可以修改detect.py里面的代码 首先先安装pyttsx3依赖&#xff1a;pip install pyttsx3 然后导包&#xff0c;这里采用多线程 import pyttsx3 import threading 在顶部合适位置&#xff0c;定义一个播放声音的方法&#xff1a; def play_voice(text):engine pyttsx3.init()eng…