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

0111qt

 

 实现闹钟,并播报懒虫...~

 

 daytest.pro:

QT       += core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

widget.h:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimerEvent>//定时器事件类
#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)override;//定时器事件函数重写的声明private slots:void on_start_btn_clicked();private:Ui::Widget *ui;int id;//定义定时器的id,用来确定是这个id的定时器超时后对应的功能QTextToSpeech *speecher;//定义一个语音播报者
};
#endif // WIDGET_H

 widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);给语音播报者实例化空间speecher=new QTextToSpeech(this);}Widget::~Widget()
{delete ui;
}
//定时器事件函数的实现
void Widget::timerEvent(QTimerEvent *e)
{if(e->timerId()==id){//获取当前的系统时间QTime sys_time=QTime::currentTime();//将系统时间进行类型转换,转换为字符串类型QString s=sys_time.toString("hh:mm:ss");//将系统时间放入sys_lab中ui->sys_lab->setText(s);//比较系统时间和闹钟时间是否一致if(s==ui->edit->text()){int n=5;while(n){speecher->say(ui->say_lab->text());n--;}}}}void Widget::on_start_btn_clicked()
{if(ui->start_btn->text()=="启动"){//启动一个定时器id=startTimer(1000);ui->start_btn->setText("关闭");}else{//关闭定时器killTimer(id);ui->start_btn->setText("启动");}}

 0110qt - 幕布

相关文章:

  • 【Docker Compose】案例分享
  • maven的scop作用域依赖问题导致idea社区版报错
  • 【椒盐玉兔】GPTs Store 商店的TOP100 自定义GPT使用报告
  • 数据结构栈、队列、链表、散列表
  • js_BOMDomAjax
  • 联邦学习中聚合算法可能怎样创新,智慧农业结合什么数学理论或知名理论实现创新并发表文章
  • S7-200SMART实例之冒泡法排序子程序
  • 能赚钱的GPT Store正式上线!如何将自己的 GPT 放到商店中?
  • 红队打靶练习:BREACH: 1
  • 【计算机网络】TCP原理 | 可靠性机制分析(三)
  • PyCharm使用手册
  • vim常用命令总结
  • JSON格式插件-VUE
  • docker一键安装
  • 手写一个starter来理解SpringBoot的自动装配
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • CSS实用技巧
  • JavaScript 一些 DOM 的知识点
  • Javascript 原型链
  • Java到底能干嘛?
  • laravel with 查询列表限制条数
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • SQLServer插入数据
  • Terraform入门 - 3. 变更基础设施
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Vue.js-Day01
  • 大整数乘法-表格法
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 深入浅出Node.js
  • 写给高年级小学生看的《Bash 指南》
  • 源码安装memcached和php memcache扩展
  • nb
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # include “ “ 和 # include < >两者的区别
  • (3)nginx 配置(nginx.conf)
  • (42)STM32——LCD显示屏实验笔记
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (初研) Sentence-embedding fine-tune notebook
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (六)软件测试分工
  • (十三)Flask之特殊装饰器详解
  • (转)3D模板阴影原理
  • (转)IOS中获取各种文件的目录路径的方法
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET学习全景图
  • @Async注解的坑,小心
  • @ConfigurationProperties注解对数据的自动封装
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择