电子闹钟
显示当前系统时间,设置定时闹钟,闹钟响进行语音播报自定义信息

代码示例

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QLCDNumber>
#include<QTimerEvent>
#include<QTime>
#include<QDebug>
#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 *);
private slots:void on_StartBtn_clicked();void on_StopBtn_clicked();
private:Ui::Widget *ui;QLCDNumber *lcd;int clickedflag = 0;int showflag = 1;QString systimetext;//定义一个播报着QTextToSpeech speech;QTextToSpeech::State state;
};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setFixedSize(570,300);this->setWindowTitle("电子闹钟");ui->TimeEdit->setStyleSheet("border: 1px solid whitle;");ui->TimeEdit->resize(250,75);ui->TimeEdit->move(300,20);ui->StartBtn->move(300,115);ui->StopBtn->move(300+ui->StartBtn->width()+20,115);ui->StopBtn->setEnabled(false);ui->MsgEdit->resize(this->width()-40,90);ui->MsgEdit->move(20,this->height()-20-90);ui->MsgEdit->setPlaceholderText("请在这里输入提醒消息");ui->TimeEdit->setDisplayFormat("HH:mm");lcd = new QLCDNumber(this);lcd->resize(250,75);lcd->move(20,20);lcd->setSegmentStyle(QLCDNumber::Flat);
//    // 设置能显示的位数
//    lcd->setDigitCount(20);lcd->setStyleSheet("border: 1px solid whitle; color: red; background: black;");//启动定时器startTimer(1000);
}
Widget::~Widget()
{delete ui;
}
//重写定时器事件
void Widget::timerEvent(QTimerEvent *)
{//1.获取系统时间QTime systime = QTime::currentTime();//2.将系统时间转换为字符串systimetext = systime.toString("HH:mm");if(clickedflag == 1 ){if(speech.state()!=1){if(ui->TimeEdit->text()==systimetext){speech.say(ui->MsgEdit->text());}}}if(showflag){systimetext[2] = ':';showflag = false;}else{systimetext[2] = ' ';showflag = true;}//将时间字符串展示到LCD中lcd->display(systimetext);
}
void Widget::on_StartBtn_clicked()
{clickedflag = 1;//开始后禁用输入时间ui->TimeEdit->setEnabled(false);ui->MsgEdit->setEnabled(false);ui->StartBtn->setEnabled(false);ui->StopBtn->setEnabled(true);
}
void Widget::on_StopBtn_clicked()
{clickedflag = 0;ui->TimeEdit->setEnabled(true);ui->MsgEdit->setEnabled(true);ui->StartBtn->setEnabled(true);ui->StopBtn->setEnabled(false);
}

测试结果



9.3 Qt实现电子闹钟相关推荐

  1. 用单片机用c语言做闹钟,基于单片机与ds1302时钟芯片的电子闹钟C程序

    原标题:基于单片机与ds1302时钟芯片的电子闹钟C程序 #include #define w_second 0x80 //秒写入地址 #define w_minute 0x82 //分写入地址 #d ...

  2. 电子闹钟(atmega16)

    电子闹钟 功能要求: 1.  实时时钟(由数码管显示时:分,中间的":"一亮一灭表示1秒,可用小数点表示,也可以用一个LED表示): 2.  时钟的时.分可调节: 3.  闹钟时间 ...

  3. 36、基于STM32的电子闹钟(DS1302)

    编号:36 基于STM32的电子闹钟(DS1302) 功能描述: 本设计由STM32单片机+液晶1602+按键+DS1302时钟模块+声光报警模组成. 1.采用STM32F103最小系统. 2.利用D ...

  4. 基于51单片机、DS1302时钟模块的电子闹钟设计

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.设计原理 1.DS1302介绍 2.闹钟音乐播放原理 二.程序设计 1.DS1302.h 2.ds1302.c 3.mu ...

  5. 用51单片机和LCD显示模块自制电子闹钟

    本文主要简单讲解利用51单片机.LCD显示模块等硬件搭建一个可以计时.显示日期的小的电子DIY作品. 硬件资源: 51单片机1个.LCD显示1个.按键2个.蜂鸣器1个.8050三极管2个等. 一.硬件 ...

  6. 基于AT89C51单片机的电子闹钟设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87761718?spm=1001.20 ...

  7. 基于qt和mysql点菜系统的优点_基于QT的电子点餐订餐系统的设计与实现(SQLite)

    基于QT的电子点餐订餐系统的设计与实现(SQLite)(任务书,外文翻译,毕业论文20000字,程序代码,SQLite数据库,答辩PPT) 摘  要 在深入研究中小餐饮企业工作流程的基础上,分析制约餐 ...

  8. android闹钟设计的开题报告,电子闹钟设计开题报告.doc

    电子闹钟设计开题报告.doc 宁波职业技术学院电子信息工程系 本科生毕业论文(设计)开题报告设计题目音乐电子闹钟的设计学生姓名王娟专业计算机应用指导教师孟德新选题目的.价值和意义20世纪末,电子技术获 ...

  9. Qt完成简易闹钟与画板

    画板 通过按钮以及捕获鼠标的press与move信号,利用pixmap在窗口中完成画版上作画.擦除.换色功能. 代码示例: .h文件 #ifndef MHUATU_H #define MHUATU_H ...

最新文章

  1. ruby html解析器
  2. localStorage与sessionStorage的区别
  3. 在discuzNT中加入Adsense广告(只在第一楼显示)
  4. 剑桥大学的下午茶,为何能喝出六十位诺贝尔奖获得者?
  5. NILMTK——经典数据集REDD介绍和使用
  6. 自适应阈值算法(大津阈值法)
  7. java EE 监听器
  8. 【英语学习】【WOTD】chockablock 释义/词源/示例
  9. 实现元素拖拽放大缩小_Vue实战067:DOM元素拖拽效果的实现
  10. C++对象模型 笔记1
  11. DataGridView多线程更新数据的问题的解决办法
  12. 2018大学计算机答案,2018年大学计算机基础试题及答案
  13. virtualbox虚拟机安装及镜像安装
  14. Ubuntu新建用户后使用sudo报错:不在sudoers文件中,此事将被报告
  15. 统计3个班成绩情况,每个班有5名同学 求出各个班的平均分和所有班级的平均分(学生成绩键盘输入) 同级生哪个班及格人数,每个班5名同学
  16. postman双击打不开的解决方案
  17. 利用JavaScript实现一个简单的猜数字游戏
  18. SpringBoot整合邮件发送
  19. VR套装的一种低成本实现方式
  20. Java中自己实现log2(N)

热门文章

  1. linux 创建用户命令
  2. html5添加背景音乐
  3. win10虚拟内存设置
  4. 该不该为了年终奖,延后辞职?
  5. JVM GC的Heap
  6. 欧洲之星fotona4d和热玛吉哪个好?哪个效果好?
  7. Python3网络爬虫--爬取歌词并制作GUI(附源码)
  8. 网络同步时间ntpdate,时区tzdata
  9. 在Angular项目中使用ng2-file-upload上传文件
  10. AJAX——JSON数据格式