0910作业+思维导图

news2024/9/21 14:41:33

一、作业(实现一个闹钟)

1、代码

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


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

    //调整标签页大小
    this->resize(800,400);
    //lab:显示系统时间
    this->local_time = new QLabel(this);
    local_time->resize(200,80);
    local_time->move(100,50);
    QFont font;
    font.setPointSize(26);
    local_time->setFont(font);


    //设置系统时间在标签页中不断跳转
    t1.start(1000);
    connect(&t1,&QTimer::timeout, this,&Widget::timeout_slot1);

    //Lineedit:编辑一个定时时间
    this->my_time = new QLineEdit(this);
    my_time->resize(250,40);
    my_time->move(400,50);
    my_time->setPlaceholderText("闹钟时间");
    //LTextEdit :编辑一个播报员内容
    this->noise = new QTextEdit(this);
    noise->resize(600,200);
    noise->move(100,180);
    noise->setPlaceholderText("播报内容");
    //创建一个语音播报类的播报员
    speech = new QTextToSpeech(this);
    speech->setLocale(QLocale::Chinese);//设置语言环境
    // 检查是否支持文本到语音功能
    if (speech->availableVoices().isEmpty())
    {
        qDebug() << "没有可用的语音引擎";
        return ;
    }
    speech->setVolume(1.0);// 设置音量
    speech->setRate(0.0);// 设置语速
    speech->setPitch(1.0);//设置音高

    //启动按钮、取消按钮
    this->st_art = new QPushButton("启动",this);
    st_art->resize(70,30);
    st_art->move(400,100);
    this->over = new QPushButton("取消",this);
    over->resize(70,30);
    over->move(480,100);
    //给取消按钮设置不可点
    over->setEnabled(false);
    connect(this->st_art,&QPushButton::clicked,this,&Widget::my_start);
    connect(&t2,&QTimer::timeout,this,&Widget::timeout_slot2);
    connect(this->over,&QPushButton::clicked,this,&Widget::my_over);

}

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

//启动按钮
void Widget::my_start()
{
    //把行编辑器,文本编辑器和启动按钮设置为不可操作
    this->my_time->setEnabled(false);
    this->noise->setEnabled(false);
    this->st_art->setEnabled(false);
    //把取消按钮设置为可操作
    this->over->setEnabled(true);
    //每隔一秒把label中的系统时间和设置好的行编辑器内容比较
    t2.start(1000);
}
//取消按钮
void Widget::my_over()
{
    //把行编辑器,文本编辑器和启动按钮重新设置为可操作
    this->my_time->setEnabled(true);
    this->noise->setEnabled(true);
    this->st_art->setEnabled(true);
    //清空行编辑器内容
    this->my_time->clear();
    //把取消按钮设置为不可操作
    this->over->setEnabled(false);
    //停止t2定时器
    t2.stop();
}
//定义播报
void Widget::my_noise(QString text)
{

    if(speech->state()==QTextToSpeech::Ready)
         {
             speech->say(text);//开始合成文本
         }
}
//定义系统时间
void Widget::timeout_slot1()
{
    QTime systime = QTime::currentTime();
    QString tm = systime.toString("hh:mm:ss");
    this->local_time->setText(tm);
}
//定义闹钟
void Widget::timeout_slot2()
{
    QString text1 = this->my_time->text();
    QString text2 = this->local_time->text();
    qDebug() <<text1;
    qDebug() <<text2;
    if(text1 == text2)
    {
        //开始播报
        qDebug() <<this->noise->toPlainText();
        this->my_noise(this->noise->toPlainText());
        //停止比较
        t2.stop();
        //把行编辑器,文本编辑器和启动按钮重新设置为可操作
        this->my_time->setEnabled(true);
        this->noise->setEnabled(true);
        this->st_art->setEnabled(true);
        //清空行编辑器内容
        this->my_time->clear();
        //把取消按钮设置为不可操作
        this->over->setEnabled(false);
    }
}
void Widget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.drawPixmap(0,0,width(),height(),QPixmap("C:\\Users\\22856\\Desktop\\pictrue\\OIP-C.jpg"));
}

2、运行结果

二、思维导图

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

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

相关文章

VS2010程序打包为可执行安装程序

说明 记录一下下次再用时省点事儿&#xff0c;直接进入正题吧 步骤 1. 首先把该装好的软件装好&#xff0c;然后创建一个 安装项目 , 如下图 2. 右键 应用程序文件夹 的 添加 , 如下图可添加要打包的文件(和文件夹&#xff0c;文件夹需要添加文件夹)&#xff0c;一般是已经编…

SpringBoot 整合WebSocket 简单实战案例

先是pom.xml添加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>PS&#xff1a;application.properties不需要添加任何配置 &#xff0c…

元学习之模型诊断元学习(model-agnosticmeta-learning,MAML)

模型诊断元学习&#xff08;model-agnosticmeta-learning&#xff0c;MAML&#xff09;&#xff0c; 另一个是Reptile。这两个算法都是在 2017 年提出来的&#xff0c;而且都是基于梯度下降法进行优化 的。那我们最常用的学习算法是梯度下降&#xff0c;在梯度下降中&#xff0…

基于VUE的在线音乐播放管理系统

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于VUE的在线音乐播放管理系统3是前后端分离项目&#xff0c;拥有两种角色 管理员&#xff1a;用户管理、收藏管理、歌手管理、歌曲管理、歌单管理、评论管理等 用户&#xff1a;登录注…

解锁生活密码,AI答案之书解决复杂难题

本文由 ChatMoney团队出品 介绍说明 “答案之书智能体”是您贴心的智慧伙伴&#xff0c;随时准备为您解答生活中的种种困惑。无论您在工作中遭遇瓶颈&#xff0c;还是在情感世界里迷失方向&#xff0c;亦或是对个人成长感到迷茫&#xff0c;它都能倾听您的心声&#xff0c;并给…

Vscode python无法转到函数定义

今天上午换了电脑&#xff0c;使用Vscode发现找不到对应的函数定义了。 使用了网上的全部教程。一点用没有。重启电脑&#xff0c;重启Vscode也没有作用。最后通过重装vscode&#xff0c;解决问题。&#xff08;也不知道Vscode什么毛病&#xff09; 重点语句&#xff1a; 去官网…

四款免费视频剪辑工具使用感受与优劣势总结

在如今这个视频内容如火如荼的时代&#xff0c;如何快速高效地完成视频剪辑成为许多人关心的问题&#xff1b;今天&#xff0c;我们就来轻松愉快地聊一聊本人常用的四款免费的视频剪辑工具&#xff1b;这四款工具各有千秋&#xff0c;让我们一起来看看它们的使用感受和优劣势吧…

Java代码审计篇 | ofcms系统审计思路讲解 - 篇3 | 文件上传漏洞审计

文章目录 0. 前言1. 文件上传代码审计【有1处】1.1 可疑点1【无漏洞】1.1.1 直接搜索upload关键字1.1.2 选择第一个&#xff0c;点进去分析一下1.1.3 分析this.getFile()方法1.1.4 分析new MultipartRequest(request, uploadPath)1.1.5 分析isSafeFile()方法1.1.6 分析request.…

连锁管理系统如何兼批发和零售 连锁收银系统如何配合做好财务

在现代零售环境中&#xff0c;信息化管理系统对连锁企业的运营至关重要。连锁管理系统通过先进的信息技术解决了批发和零售中的众多挑战&#xff0c;同时为财务管理提供了有力支持。商淘云分享如何提高连锁企业的运营效率和财务管理水平&#xff0c;大家点赞收藏。 1、统筹批发…

算法知识点————背包问题

万能头文件#include<bits/stdc.h> 01 背包 定义&#xff1a; 物品只能用1次。01对应选还是不选第i个物品 .N个物品、V容量的最大价值。 思路&#xff1a; &#xff08;1&#xff09;f[ i ] [j] 表示前i个物品容量j的最大价值。 &#xff08;2&#xff09;当前背包容量…

在WPF中使用矢量图标

使用SVG/Path WPF支持绘图&#xff0c;在WPF中定义了一些基本图形&#xff0c;如Line、Rectangle、Ellipse、Path等 其中Path支持使用路径来进行绘图&#xff0c;所以大部分的图标可以通过Path来进行绘制。 因为本文主要是介绍矢量图标&#xff0c;所以不对绘图进行详细介绍…

opencv之图像梯度

图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分&#xff0c;其灰度值变化较大&#xff0c;梯度值也较大&#xff1b;相反&#xff0c;对于图像中比较平滑的部分&#xff0c;其灰度值变化较小&#xff0c;相应的梯度值也较小。一般情况下&#xff0c;图像梯度计…

重命名工具 | Advanced Renamer v4.03 绿色版

Advanced Renamer 是一款专为 Windows 平台设计的强大文件批量重命名工具。它提供了多种重命名方法&#xff0c;包括指定新文件名、改变大小写、移动字符、移除字符串、重编文件名序号、替换字符、添加内容、使用列表或列表文件替换文件名、交换字符位置、去除头部或尾部多余空…

百度Apollo打通与ROS的通信,扩展自动驾驶系统生态

技术文档&#xff5c;打通与ROS的通信&#xff0c;扩展自动驾驶系统生态_Apollo开发者社区 (baidu.com)

-顺序表-

一、小概述 二、代码解析 下面利用顺序表实现增删改查的功能&#xff1a; //动态顺序表 #include <iostream> using namespace std; typedef int SLDataType;//适用于多种类型 typedef struct SeqList {SLDataType* a;//数组int size;//表示数组中存储了多少个元素int …

【车载开发系列】ParaSoft单元测试环境配置(一)

【车载开发系列】ParaSoft单元测试环境配置(一) ParaSoft单元测试环境配置 【车载开发系列】ParaSoft单元测试环境配置(一)一. 什么是bdf文件二. bdf文件构成三. 新规做成bdf文件四. 导入bdf文件创建测试工程五. 获取编译器信息六. 新增自定义编译器Step1:打开向导Step2:…

Xcode 16 RC (16A242) 发布下载,正式版下周公布

Xcode 16 RC (16A242) - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接&#xff1a;https://sysin.org/blog/apple-xcode-16/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Xcode 16 的新功…

【拓扑系列】拓扑排序

【拓扑系列】拓扑排序 前言认识有向无环图认识AOV网&#xff1a;顶点活动图拓扑排序 1. 课程表1.1 题目来源1.2 题目描述1.3 题目解析 2. 课程表 II2.1 题目来源2.2 题目描述2.3 题目解析 3. LCR 114. 火星词典3.1 题目来源3.2 题目描述3.3 题目解析 前言 认识有向无环图 图中…

AI基础 L13 Constraint Satisfaction Problems I约束满足问题

Defining Constraint Satisfaction Problems A constraint satisfaction problem (CSP) consists of three components, X, D, and C: • X is a set of variables, {X1, . . . , Xn}. • D is a set of domains, {D1, . . . , Dn}, one for each variable • C is a set of co…

STM32+ESP8266 WiFi连接机智云平台APP远程控制教程

本文档将介绍如何用STM32ESP8266 WiFi模块从零开始连接上机智云&#xff0c;并通过APP进行远程控制。 机智云官网&#xff1a;机智云|智能物联网操作系统 (gizwits.com) 准备&#xff1a;STM32、ESP8266、手机、可上网的WiFi。 1.创建设备 1.1 注册登陆 请自行注册账号并登陆…