华清远见作业第四十二天——Qt(第四天)

思维导图:

编程:

代码:

widget.h

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QTextToSpeech> //语音播报类
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_pushButton_clicked();

private:
    Ui::Widget *ui;
    int id;//超时1
    int id2;//超时2
    QString t;
    //实例化一个语音播放类
    QTextToSpeech *speecher;
    QString s;
};
#endif // WIDGET_H

widget.cpp

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include<QTime>
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{

    speecher=new QTextToSpeech(this);   //语音

    ui->setupUi(this);
    id=startTimer(1000);//超时器1

}

Widget::~Widget()
{
    delete ui;
}
//当定时器超时时,自动执行的函数
void Widget::timerEvent(QTimerEvent *e)
{

    //判断那个定时器超时
    if(e->timerId()==id)
    {
//        static int num=0;
//        ui->lab1->setNum(++num);
        //获取系统时间
        QTime sys_time =QTime::currentTime();
        //将系统时间转换为字符串类型
        t=sys_time.toString("hh:mm:ss");
        //将内容显示到ui界面上
        ui->label->setText(t);
        //居中
        ui->label->setAlignment(Qt::AlignCenter);
    }
    else if(e->timerId()==id2)
    {

        if(s==t&& ui->pushButton ->text()=="关闭")
            for (int i=0;i<5;i++) {
                qDebug() << "成功";
                speecher->say(ui->label_3->text());//读取内容
            }
    }
}



void Widget::on_pushButton_clicked()
{

    if(ui->pushButton ->text() == "启动")
    {
        //将按钮上的文本设置成"关闭"
        s=ui->lineEdit->text();
        id2=startTimer(1000);//超时2
        ui->pushButton ->setText("关闭");
    }
    else
    {
        //将按钮上的文本设置成"启动"
        ui->pushButton ->setText("启动");
    }

}

运行效果:

相关推荐
郝学胜_神的一滴7 小时前
Qt 高级开发 021:零基础吃透 QVBoxLayout 垂直布局
c++·qt
誰能久伴不乏12 小时前
libmodbus 在 Windows 环境下报 “Invalid argument“ 的排错记录
c++·qt·modbus
小许同学记录成长13 小时前
网格简化算法 — Edge Collapse(边塌缩)
qt·算法
tangchao340勤奋的老年?14 小时前
遮挡式引导界面设计
qt
酬勤-人间道14 小时前
VTK 与 Cesium-native 结合实践:小场景三维编辑 + 数字地球精准贴合
c++·qt·vtk·遥感·岩土·cesium-native
誰能久伴不乏14 小时前
Qt C++ 解析 JSON 完全指南:从核心概念到工业级实战
c++·qt·json
雪的季节16 小时前
Qt 高性能绘图的核心原理
qt
Irissgwe16 小时前
一、Qt 概述
c++·qt·gui·qt creator
m0_6174939416 小时前
PySide6/PyQt6实现中英文切换完整教程(Qt Designer + Qt Linguist + 动态切换)
开发语言·qt
咸鱼翻身小阿橙16 小时前
文件读写 + Qt Model/View + 自定义分页+搜索过滤
java·数据库·qt