设置定时闹钟,语音播报

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QTime>//时间类
#include<QtTextToSpeech>//文本转语音类
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_startbtn_clicked();private:Ui::Widget *ui;int id1;//实例化一个语音播报者QTextToSpeech *speecher;int temp;
};
#endif // WIDGET_H

main.cpp

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),speecher(new QTextToSpeech(this))
{ui->setupUi(this);id1=startTimer(1000);}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");//将系统时间设置到ui界面上ui->timelab->setText(s);//居中ui->timelab->setAlignment(Qt::AlignCenter);if(ui->lineEdit->text()==ui->timelab->text()&&temp==1){for(int i=0;i<5;i++){//闹钟时间到,就开始speech,读取内容speecher->say(ui->label_3->text());}}}}//启动按钮对应的槽函数处理
void Widget::on_startbtn_clicked()
{if(ui->startbtn->text()=="启动"){ui->startbtn->setText("关闭");temp=1;}else{ui->startbtn->setText("启动");temp=0;}}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不再混淆!一文搞懂ECMAScript和JavaScript的真正差异

深入解析ECMAScript和JavaScript的区别 1. 引言2. ECMAScript和JavaScript的定义3. ECMAScript和JavaScript的关系4. ECMAScript的发展历史5. JavaScript的实现和应用6. ECMAScript和JavaScript的区别7. 总结8. 参考资料 1. 引言 大家好&#xff0c;这里是程序猿代码之路。本文…

【Vue】实现的底层原理

底层原理 在 Vue 中实现数据对象和UI模板之间绑定关系&#xff0c;从而实现数据变化自动更新UI的核心机制&#xff0c;主要依赖于响应式系统。Vue的响应式系统基于JavaScript的对象属性访问器&#xff08;getter和setter&#xff09;和依赖收集的概念来实现。下面是这一机制的…

【MATLAB源码-第13期】基于matlab的4ASK的误码率BER和误符号率SER理论和实际对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 "4ASK" 是一种数字调制技术&#xff0c;代表4级振幅移移键控&#xff08;4-Level Amplitude Shift Keying&#xff09;调制。它是一种数字通信中常用的调制方式之一&#xff0c;用于将数字信号转换为模拟信号以便传…

分享全栈开发医疗小程序 -带源码课件(课件无解压密码),自行速度保存

课程介绍 分享全栈开发医疗小程序 -带源码课件&#xff08;课件无解压密码&#xff09;&#xff0c;自行速度保存&#xff01;看到好多坛友都在求SpringBoot2.X Vue UniAPP&#xff0c;全栈开发医疗小程序 - 带源码课件&#xff0c;我看了一下&#xff0c;要么链接过期&…

GPT2从放弃到入门(四)

引言 体验地址&#xff1a;https://huggingface.co/spaces/greyfoss/gpt2-chatbot 上篇文章我们通过Gradio作为前端轻松地连接到训练好的Chatbot&#xff0c;本文介绍如何分享你创建好的模型给你的朋友。 当你训练好的模型推送到Huggingface Hub上后&#xff0c;其实还可以进一…

Linux 挂载磁盘

第一种方式&#xff08;不分区&#xff09; 磁盘不分区&#xff0c;直接挂载到某个目录。 查看磁盘列表 fdisk -l [root]# fdisk -lDisk /dev/vdb: 214.7 GB, 214748364800 bytes, 419430400 sectors Units sectors of 1 * 512 512 bytes Sector size (logical/physical): …

Codeforces Round 934 (Div. 2) ---- D. Non-Palindromic Substring --- 题解

目录 D. Non-Palindromic Substring &#xff1a; 题目描述&#xff1a; 思路解析&#xff1a; 下面给出两种代码的代码实现&#xff1a; 代码一&#xff1a;线段树实现hash判断回文字符串 代码二&#xff1a;manacher判断回文字符串 D. Non-Palindromic Substring &#…

大数据Hadoop生态圈体系视频课程

课程介绍 熟悉大数据概念&#xff0c;明确大数据职位都有哪些&#xff1b;熟悉Hadoop生态系统都有哪些组件&#xff1b;学习Hadoop生态环境架构&#xff0c;了解分布式集群优势&#xff1b;动手操作Hbase的例子&#xff0c;成功部署伪分布式集群&#xff1b;动手Hadoop安装和配…

codeforces div4 Double Strings

#include<iostream> #include<algorithm> #include<cstring> #include<map> using namespace std; int T, n; string s[900005]; map<string, int>mm;//存放每一个字符串是否出现过 int main() {cin >> T;while (T--){mm.clear();//每次清…

服务端测试开发必备技能:Mock测试

什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 Mock测试常见场景 无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要求依赖的接口还未开发完成&#…

linux 离线安装 dotnet tool

1. 在官网下载对应的nuget包,比如: dotnet-dump NuGet Gallery | dotnet-dump 3.1.57502 注意文件名称: dotnet-dump.3.1.57502.nupkg 我犯了一个错误,下载比较慢,然后通过迅雷来下载,结果没有后缀名称. 2. 然后拷贝到linux上,比如: 拷贝到dp文件夹下, 在dp文件夹上级执行命…

2965: 寻宝猎人(贪心)

2965: 寻宝猎人 题目描述 寻宝猎人Tom发现了一处宝藏&#xff0c;宝藏为一个N * M 的矩阵组成&#xff0c;矩阵的每一个点都包含一个钱袋&#xff0c;钱袋中装有若干金币。现在Tom只想从这个矩阵中拿走一块 3 * 3 的矩阵&#xff0c;请问他能拿走的最大金币数量。 输入 第一行输…

mfc140.dll丢失的解决方法,快速修复win10系统dll问题

在Windows 10操作系统环境下&#xff0c;如果发现系统中关键的动态链接库文件mfc140.dll丢失&#xff0c;可能会引发一系列运行问题。mfc140.dll是Microsoft Foundation Class Library&#xff08;微软基础类库&#xff09;的重要组成部分&#xff0c;对于许多基于该库开发的应…

ACL访问控制协议

ACL 1. Access Control List 2. ACL是一种包过滤技术。 3. ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、[5层数据] 基于三层和四层过滤 4. ACL在路由器上配置&#xff0c;也可以在防火墙上配置&#xff08;一般称为策略&#xff09; 5. ACL主要分为2大类&…

代码随想录算法训练营第三十五天|860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球

860. 柠檬水找零 题目 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾…

【干货】无源滤波器设计讲解,工作原理+设计步骤

今天给大家分享的是&#xff1a;无源模拟滤波器针对很多入门小白不懂滤波器设计&#xff0c;一些老工程师上班很多年有的也不懂得总结知识点&#xff0c;以及想学习不知道怎么系统学习的这一类人群&#xff0c;前方知识点来袭&#xff0c;请君放心食用~ 在信号处理领域&#x…

java的一些内部小知识,类与对象的关系

目录 1. java2. 类与对象的关系 1. java test.java ---- javac --> Test.class ---- java-----> 内存 ----> cpu 源文件 二进制代码 所有正在运行的软件都在内存中有自己的内存空间 jvm —>运行java程序的&#xff0c;java虚拟机 main(); // 内部调用run()run(i…

苍穹外卖项目笔记

软件开发流程 需求分析&#xff1a;说明书和原型 设计&#xff1a;UI&#xff0c;数据库&#xff0c;接口设计 编码&#xff1a;项目代码&#xff0c;单元测试 测试&#xff1a;测试用例&#xff0c;测试报告 上线运维&#xff1a;软件环境安装&#xff0c;配置 软件环境…

迷宫与陷阱(蓝桥杯)

文章目录 迷宫与陷阱问题描述bfs解题思路代码 迷宫与陷阱 问题描述 小明在玩一款迷宫游戏&#xff0c;在游戏中他要控制自己的角色离开一间由 N x N 个格子组成的2D迷宫。 小明的起始位置在左上角&#xff0c;他需要到达右下角的格子才能离开迷宫&#xff0c;每一步&#xf…

Mybatis中条件传入多个参数时,如何处理

entity&#xff1a; Data AllArgsConstructor NoArgsConstructor public class User {private Integer id;private String username;private String password;private String phone;private String address; }dao接口&#xff1a; public interface UserDAO {List<User>…