QT DAY4

news2024/9/27 9:19:21

做一个闹钟,并播报填写内容

 widget.h 文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>
#include <QDateTime>
#include <QMessageBox>
#include<QTextToSpeech>      //文本转语音类

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();
    void timerEvent(QTimerEvent *e);

private slots:
    void on_openBtn_clicked();

    void on_closeBtn_clicked();



private:
    Ui::Widget *ui;
    //定义一个定时器的ID
    int event_timer;
    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);

    //给usrEdit框输入提示信息
    ui->usrEdit->setPlaceholderText("请输入闹钟定时时间 hh:mm:ss");
    //给readEdit框输入提示信息
    ui->readEdit->setPlaceholderText("请输入要播报的信息");
    //给播报员实例化空间
    speecher = new QTextToSpeech(this);
    //让时间从程序一运行就开始显示
    event_timer=this->startTimer(1000);
    //没有输入设定时间时,关闭按钮设置为不可用
    ui->closeBtn->setEnabled(false);
    ui->openBtn->setStyleSheet("background-color:green");
    ui->closeBtn->setStyleSheet("background-color:violet");
}

Widget::~Widget()
{
    delete ui;
}
//点击启动按钮事件
//点击后,启动按钮、usrEdit和readEdit不可用,关闭按钮改为可用
void Widget::on_openBtn_clicked()
{
    ui->openBtn->setEnabled(false);
    ui->closeBtn->setEnabled(true);
    ui->readEdit->setEnabled(false);
    ui->usrEdit->setEnabled(false);
    ui->closeBtn->setStyleSheet("background-color:green");
    ui->openBtn->setStyleSheet("background-color:violet");
}
//点击关闭按钮事件
void Widget::on_closeBtn_clicked()
{
//    this->killTimer(event_timer);
    ui->openBtn->setEnabled(true);
    ui->closeBtn->setEnabled(false);
    ui->readEdit->setEnabled(true);
    ui->usrEdit->setEnabled(true);
    ui->openBtn->setStyleSheet("background-color:green");
    ui->closeBtn->setStyleSheet("background-color:violet");
}

void Widget::timerEvent(QTimerEvent *e)
{
    if(e->timerId()==event_timer)
    {
        ui->timelab->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);

        QDateTime sys_dt=QDateTime::currentDateTime();
        ui->timelab->setText(sys_dt.toString("yyyy-MM-dd hh:mm:ss "));
//        p.setFont(QFont("隶书",20,10));
        ui->timelab->setFont(QFont("隶书",18,10));

        if(sys_dt.toString("hh:mm:ss")==ui->usrEdit->text())
        {
            QMessageBox::information(
                        this,
                        "提示",
                        "提醒时间已到");
            //语音播报readEdit框中的文本内容
            speecher->say(ui->readEdit->toPlainText());
        }

    }
}


实现效果

        在没有点击启动按钮时,时间和信息都可以修改,点击关闭按钮无效。

         信息和时间填写完后,点击启动按钮后,启动按钮被锁定,时间框和信息框无法再修改内容,只有关闭按钮可以点击。

         一旦到达设定时间,会弹出提醒框提醒,点击OK后,接着就是播报信息。

 

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

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

相关文章

你的流量虚了吗?分析手机流量卡不足量的套路

当今时代&#xff0c;手机流量的使用是每个人每天都在消耗的事情&#xff0c;在有WIFI的情况下还好&#xff0c;大家不需要担心流量用多了还是少了&#xff0c;但是在使用手机流量的时候&#xff0c;就需要注意了&#xff0c;看看是不是会用超什么的&#xff0c;但是现在有一个…

最新总结的软件测试宝典,花2天时间阅完,软件测试面试就过了......

1、测试人员需要何时参加需求分析&#xff1f; 如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工作的开展越有利 可以尽早的确定测试思路 减少与开发人员的交互 减少对需求理解上的偏差 2、软件测试与调试的关系 测试条件已知&#x…

uniapp Android平台各功能模块隐私合规协议

Android平台各功能模块隐私合规协议

STM32 Proteus仿真HCSR04超声波测距报警DS18B20温度采集 -0055

STM32 Proteus仿真HCSR04超声波测距报警DS18B20温度采集 -0055 Proteus仿真小实验&#xff1a; STM32 Proteus仿真HCSR04超声波测距报警DS18B20温度采集 -0055 功能&#xff1a; 硬件组成&#xff1a;STM32F103R6单片机 LCD1602显示器HCSR04超声波测距传感器DS18B20温度传感器…

数学建模常用模型(六):时间序列预测

数学建模常用模型&#xff08;六&#xff09;&#xff1a;时间序列预测 时间序列预测是数学建模中的一个重要领域&#xff0c;用于预测时间序列数据中未来的趋势和模式。时间序列预测可以帮助我们了解数据的演变规律&#xff0c;做出合理的决策和规划。 这是我自己总结的一些代…

FCPX插件-16个手绘卡通素描涂鸦图形文字标题动画 Scribble Sketch Lower Thirds

Scribble Sketch Lower Thirds包含16个手绘卡通素描涂鸦图形文字标题动画模板&#xff0c;一个简约的卡通标题动画&#xff0c;由手绘的文本动画组成&#xff0c;可帮助您轻松改善您影片创意。 这个插件包提供了各种独特的手绘风格的标题动画模板&#xff0c;包括涂鸦笔画、草…

最新FLstudio21.0.3中文版本下载更新及内容介绍

在现在这个数字音乐时代&#xff0c;各种音乐中都或多或少有些电子音乐的影子&#xff0c;或是合成器音色、或是通过数字效果器制作出的变幻莫测的变化效果。而小马丁、Brooks、Eliminate等众多电子音乐巨头便是使用FL Studio来制作音乐的。今天小编就以FL Studio五年的资深用户…

你尚未连接--代理服务器可能有问题,或地址不正确。

这种情况可能是你装了梯子之后&#xff0c;自动开启了代理服务器 解决方法&#xff1a; 1、控制面板->网络和Internet 2、网络和共享中心->internet选项 3、连接->局域网设置 4、把代理服务器的沟沟取消 这样就解决了

多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)

目录 线程休眠 线程让步 线程联合 Thread类中的其他常用方法 判断线程是否存活 线程的优先级 线程休眠 sleep()方法&#xff1a;可以让正在运行的线程进入阻塞状态&#xff0c;直到休眠时间 满了&#xff0c;进入就绪状态。sleep方法的参数为休眠的毫秒数。 public class…

数据库常见4种范式

数据库范式 1. 数据库范式1.1 第一范式&#xff08;1NF&#xff09;1.2 第二范式&#xff08;2NF&#xff09;1.3 第三范式&#xff08;3NF&#xff09;1.4 巴斯科德范式&#xff08;BCNF&#xff09;1.5 范式的优缺点1.5.1 优点1.5.2 缺点 1. 数据库范式 在关系型数据库中&…

LabVIEW开发汽车安全带张紧测试

LabVIEW开发汽车安全带张紧测试 安全带是车辆乘员安全的主要约束系统&#xff0c;通过遮挡乘员与仪表板或挡风玻璃等接触&#xff0c;显着防止致命或非致命伤害。安全带的实践在三十年内将死亡率降低到相当可观的水平&#xff0c;并且直到今天仍然是许多国家的强制性。 然而&…

基于物理机部署前后端分离项目

软件安装 安装git 安装mysql 安装redis 安装python 安装虚拟环境 安装uwsgi 安装nginx centos安装常见软件_骑台风走的博客-CSDN博客一 卸载mysql### 1 查看mysql的安装情况 rpm -qa |grep -i mysql # -i表示忽略大小写 mysql80-community-release-el7-7.noarch mysql-commun…

如何用 Github Pages 免费部署静态站点

最低成本部署静态网站 所谓静态网站&#xff0c;是指它所有内容都是静态的&#xff0c;即预先编写好并存储在服务器上&#xff0c;访问者获取到的是事先准备好的静态文件。 所以完全不需要购买服务器&#xff0c;除了域名之外&#xff0c;几乎不会有其他花销。 我在构建五个静…

3.7.cuda运行时API-使用cuda核函数加速warpaffine

目录 前言1. warpAffine2. warpAffine案例2.1 导言2.2 main函数2.3 warpaffine_to_center_align函数2.4 warp_affine_bilinear函数2.5 warp_affine_bilinear_kernel核函数2.6 AffineMatrix结构体 3. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0…

【Linux后端服务器开发】软硬链接与动静态库

目录 一、软硬链接 二、动静态库 1. 静态库 2. 动态库 一、软硬链接 软链接&#xff1a;ln -s myfile soft_file.link 硬链接&#xff1a;ln myfile hard_file.link 查看映射关系&#xff1a;ll -li 软硬链接区别&#xff1a;是否具有独立的inode 软链接具有独立的inode…

Appium+python自动化(一)- 环境搭建—上(超详解)

最近整理了一下自动化的东西&#xff0c;先前整理的python接口自动化已经接近尾声。即将要开启新的征程和篇章&#xff08;Appium&python&#xff09;。那么首相的问题就是搭建环境了。好久没搭建环境又踩了不少坑&#xff0c;appium的环境搭建比较繁琐&#xff0c;好多同行…

零撸X2E大热门​Salad Venture的空投!

Salad Venture 随着Web3的走红&#xff0c;X to Earn成为热门概念&#xff0c;其中X可指运动、购物、游戏、学习和创作等诸多应用场景&#xff0c;Earn则是通过这些特定场景产生经济收益。与Web2企业将利益分配权牢牢掌握在自己手中不同&#xff0c;X to Earn的本质是将参与者…

Coggle 30 Days of ML(23年7月)任务七:训练TextCNN模型

Coggle 30 Days of ML&#xff08;23年7月&#xff09;任务七&#xff1a;训练TextCNN模型 任务七&#xff1a;使用Word2Vec词向量&#xff0c;搭建TextCNN模型进行训练和预测 说明&#xff1a;在这个任务中&#xff0c;你将使用Word2Vec词向量&#xff0c;搭建TextCNN模型进…

【LeetCode热题100】打卡第32天:最长连续序列只出现一次的数字单词拆分环形链表

文章目录 【LeetCode热题100】打卡第32天&#xff1a;最长连续序列&只出现一次的数字&单词拆分&环形链表⛅前言 最长连续序列&#x1f512;题目&#x1f511;题解 只出现一次的数字&#x1f512;题目&#x1f511;题解 单词拆分&#x1f512;题目&#x1f511;题解…

webAPI学习笔记5——移动端网页特效和本地存储

一、移动端网页特效 1. 触屏事件 1.1 触屏事件概述 移动端浏览器兼容性较好&#xff0c;我们不需要考虑以前 JS 的兼容性问题&#xff0c;可以放心的使用原生 JS 书写效果&#xff0c;但是移动端也有自己独特的地方。比如触屏事件 touch&#xff08;也称触摸事件&#xff09…