QTDAY3

news2024/9/25 3:29:05

闹钟

头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>  //定时器事件处理函数
#include <QTime>        //时间类
#include <QString>
#include <QPushButton>
#include <QTextToSpeech>
#include <QMessageBox>



QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

     void timerEvent(QTimerEvent *e);        //要重写的关于定时器事件处理函数的声明


private slots:
    void on_startbtn_clicked();

    void on_stopbtn_clicked();

private:
    Ui::Widget *ui;

    int tid;
    QTextToSpeech *speecher;

};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //启动定时器
    tid = startTimer(1000);

    //让停止按钮默认不可用
    ui->stopbtn->setEnabled(false);

    //构造演讲者
    speecher = new QTextToSpeech(this);

    //窗口标题
    this->setWindowTitle("clock");
    this->setWindowIcon(QIcon(":/C:/Users/PC/Desktop/my/my_icon.png"));

    //设置透明度
    this->setWindowOpacity(0.9);

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_startbtn_clicked()
{
    //将启动按钮,两个编辑器不可用,停止按钮可用
    ui->stopbtn->setEnabled(true);
    ui->startbtn->setEnabled(false);
    ui->clocktxtedit->setEnabled(false);
    ui->clocktimeedit->setEnabled(false);
}

void Widget::on_stopbtn_clicked()
{
    int res = QMessageBox::warning(this,
                                   "警告",
                                   "确定停止吗",
                                   QMessageBox::Yes | QMessageBox::No);

    //将启动按钮,两个编辑器可用,停止按钮不可用
    if(res == QMessageBox::Yes)
    {
        ui->stopbtn->setEnabled(false);
        ui->startbtn->setEnabled(true);
        ui->clocktxtedit->setEnabled(true);
        ui->clocktimeedit->setEnabled(true);
        ui->clocktimeedit->clear();
    }
}

void Widget::timerEvent(QTimerEvent *e)
{
    if(e->timerId() == tid)
    {
        //获取系统时间
        QTime sys_time = QTime::currentTime();

        //将时间转换为字符串
        QString t = sys_time.toString("hh:mm:ss");

        //将字符串展示到ui界面
        ui->systimelab->setText(t);
        ui->systimelab->setAlignment(Qt::AlignCenter);

        //判断系统时间是否和设定时间相同
        if(ui->systimelab->text() == ui->clocktimeedit->text())
        {
            speecher->say(ui->clocktxtedit->toPlainText());
        }
    }
}

思维导图

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

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

相关文章

spring中存储和获取bean对象

文章目录 1. 存储bean对象1.1 使用配置文件存储bean对象1.2 使用五大类注解存储bean对象1.2.1 类注解1.2.2 五大类注解的作用1.2.3 方法注解 2.获取bean对象2.1 属性注入2.2 构造器注入2.3 getter注入2.4 注入对象的时候有spring中有多个bean对象怎么办2.4.1 将类中属性的名字&…

ava版知识付费平台免费搭建 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台

提供私有化部署&#xff0c;免费售后&#xff0c;专业技术指导&#xff0c;支持PC、APP、H5、小程序多终端同步&#xff0c;支持二次开发定制&#xff0c;源码交付。 Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独…

数据结构基础:2.顺序表。

顺序表的介绍和实现 一.线性表1.基本概念&#xff1a; 二.顺序表&#xff1a;1.基本概念&#xff1a;分类&#xff1a;1.静态顺序表&#xff1a;分类&#xff1a;2.动态顺序表&#xff1a;2.动态顺序表的功能接口的实现&#xff1a;0.顺序表打印&#xff1a;1.初始化和删除&…

功率放大器在电光调制中的应用有哪些

电光调制是一种利用光电效应将电信号转化为光信号的技术。在实现电光调制的过程中&#xff0c;功率放大器作为一个重要的组件&#xff0c;具有对输入电信号进行放大和控制的功能。本文将介绍功率放大器的基本原理、特点以及在电光调制中的应用。 基本原理 功率放大器是一种能够…

新建Git仓库,将本地文件上传至仓库

1、新建仓库&#xff0c;勾选初始化仓库 2、复制仓库链接 3、打开本地文件目录 右键选择 Git Bash Here 打开命令窗口 4、依次按照下面的步骤&#xff08;*如果报错&#xff0c;看原目录下是否存在 .git 需要删除&#xff09; // 生成git文件 git init // 把文件加入暂存区 g…

DeepSpeed-MoE:训练更大及更复杂的混合专家网络

这是微软发布在2022 ICML的论文&#xff0c;MoE可以降低训练成本&#xff0c;但是快速的MoE模型推理仍然是一个未解决的问题。所以论文提出了一个端到端的MoE训练和推理解决方案DeepSpeed-MoE&#xff1a;它包括新颖的MoE架构设计和模型压缩技术&#xff0c;可将MoE模型大小减少…

Java基础篇

前言&#xff1a;此篇博客笔者参考了JavaGuide、三分恶等博主的八股文&#xff0c;结合Chat老师和自己的理解&#xff0c;整理了一篇关于Java基础的八股文。全篇图文并茂&#xff0c;每个知识点都有细致描述&#xff0c;详略得当&#xff0c;理解通透。希望对各位读者有所帮助&…

Python(四十二)流程控制语句——continue

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

reids集群删除某个集群节点

由于服务期调整&#xff0c;已经配好的集群&#xff0c;要删除几个节点&#xff0c;利用命令redis-cli --cluster del-node ip:prot 结果删除失败了&#xff0c;报错&#xff1a; ERR Unknown subcommand or wrong number of arguments for del-node。help查了下&#xff0c;没…

【数据结构】实验二:顺序表

实验二 顺序表 一、实验目的与要求 1&#xff09;熟悉顺序表的类型定义&#xff1b; 2&#xff09;熟悉顺序表的基本操作&#xff1b; 3&#xff09;灵活应用顺序表解决具体应用问题。 二、实验内容 1&#xff09;在一个整数序列a1,a2,…,an中&#xff0c;若存在一个数&…

调用post请求方式的feign接口怎么传递多个参数,包含对象和字符串

今天尝试把自己原来的项目上的权限管理相关的类抽离开来&#xff0c;并建立一个统一的权限管理平台&#xff0c;然后项目中要用到的权限相关资源通过feigin请求权限平台的对应接口获取。 现在有一个需求&#xff0c;页面上有一个一键获取资源权限的按钮&#xff0c;点击一下&a…

python_PyQt5开发验证K线视觉想法工具V1.0

目录 写在前面&#xff1a; 使用过程&#xff1a; 代码&#xff1a; 导入的包、字符型横坐标、K线控件 K线图控件 放置标记数据表格控件 输入并设置标记数据控件 主界面 运行代码 写在前面&#xff1a; 开发这个工具的初衷&#xff0c;是基于在分析股票实践中想批量计算…

Django实现音乐网站 ⑴

使用Python Django框架制作一个音乐网站。 目录 网站功能模块 安装django 创建项目 创建应用 注册应用 配置数据库 设置数据库配置 设置pymysql库引用 创建数据库 创建数据表 生成表迁移文件 执行表迁移 后台管理 创建管理员账户 启动服务器 登录网站 配置时区…

神码ai火车头伪原创设置【php源码】

大家好&#xff0c;给大家分享一下python考什么内容&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 1、Python 计算机二级都考什么 Python要到什么程度 考试内容 一、Python语言的基本语法元素…

高算力AI模组前沿应用:基于ARM架构的SoC阵列式服务器

本期我们带来高算力AI模组前沿应用&#xff0c;基于ARM架构的SoC阵列式服务器相关内容。澎湃算力、创新架构、异构计算&#xff0c;有望成为未来信息化社会的智能算力底座。 ▌性能优势AI驱动&#xff0c;ARM架构服务器加速渗透 一直以来&#xff0c;基于ARM架构的各类处理器…

Tooltip文字提示(antd-design组件库)简单使用

1.Tooltip文字提示 简单的文字提示气泡框。 2.何时使用 鼠标移入则显示提示&#xff0c;移出消失&#xff0c;气泡浮层不承载复杂文本和操作。 可用来代替系统默认的 title 提示&#xff0c;提供一个 按钮/文字/操作 的文案解释。 组件代码来自&#xff1a; 文字提示 Tooltip -…

读写分离案例、Mysql主从复制 步骤

在开发大型应用程序时&#xff0c;数据库的性能通常是一个关键问题。读写分离是一种常见的数据库优化技术&#xff0c;可以显著提升数据库的读取操作性能。本文将介绍MySQL主从复制和一个读写分离案例。 1、MySQL主从复制 主从复制是MySQL数据库提供的一种数据复制机制&#…

免费商城搭建、免费小程序商城搭建、之java商城 电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

【黑马头条之内容安全第三方接口】

本笔记内容为黑马头条项目的文本-图片内容审核接口部分 目录 一、概述 二、准备工作 三、文本内容审核接口 四、图片审核接口 五、项目集成 一、概述 内容安全是识别服务&#xff0c;支持对图片、视频、文本、语音等对象进行多样化场景检测&#xff0c;有效降低内容违规风…

vue+ivew model框 select校验遇到的问题

iview model 点击关闭&#xff0c;校验没有通过也会关闭 解决办法&#xff1a; 第一步&#xff1a;自定义页脚内容 <div slot"footer"><Button type"primary" click"confirmCarryOver()">确认</Button><Button click&qu…