华清远见作业第四十二天——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("启动");
    }

}

运行效果:

相关推荐
刺客xs8 小时前
Qt ----- QT线程
开发语言·qt
SunkingYang10 小时前
QT程序如何将事件和消息发送给MFC程序,MFC程序如何接收消息和事件
qt·mfc·消息·事件·通信·通讯·传递
凯子坚持 c12 小时前
Qt 5.14.0 入门框架开发全流程深度解析
开发语言·qt
深蓝海拓12 小时前
PySide6从0开始学习的笔记(十四)创建一个简单的实用UI项目
开发语言·笔记·python·qt·学习·ui·pyqt
小尧嵌入式13 小时前
Linux网络介绍网络编程和数据库
linux·运维·服务器·网络·数据库·qt·php
海涛高软14 小时前
Qt中使用QListWidget列表
开发语言·qt
010米粉01014 小时前
Qt之构建方式
qt
凯子坚持 c14 小时前
Qt 信号与槽机制深度解析
开发语言·qt
世转神风-15 小时前
qt-初步编译运行报错-When executing step “Make“-无法启动进程“make“
开发语言·qt
一然明月1 天前
QT之基础控件
开发语言·qt