Qt 12.30 day5

复制代码
day5_testppp.pro
cpp 复制代码
QT       +=core gui texttospeech
复制代码
widget.h
cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>//定时器事件类
#include <QTimer>//时间事件类
#include <QTime>//时间类
#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 *event);

private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui;
    int id;
    QTime sys_time;
    bool flag = false;
    QTextToSpeech *speecher;
};
#endif // WIDGET_H

widget.cpp

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
    ,speecher(new QTextToSpeech(this))
{
    ui->setupUi(this);
    id = startTimer(1000);
}

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

//重写定时器事件函数的实现
void Widget::timerEvent(QTimerEvent *event)
{
    if(event->timerId() == id)
    {
        //获取系统时间 QTime
        QTime sys_time = QTime::currentTime();
        //将系统事件转换为字符串
        QString t = sys_time.toString("hh--mm--ss");
        //将系统时间放入lab中
        ui->label->setText(t);
        //居中
        ui->label->setAlignment(Qt::AlignCenter);
        //比较label中的系统时间和设定的闹钟时间是否一致
        if(ui->label->text()==ui->lineEdit->text()&&flag==true)
        {
            //语音播放5遍
            for(int i=0;i<5;i++)
            {
                speecher->say(ui->label_3->text());

            }
            //播完五遍语音按钮复位
            ui->pushButton->setText("启动");
        }
    }
}


//启动按钮对应的槽函数
void Widget::on_pushButton_clicked()
{
    //实现一钮两用
    if(ui->pushButton->text() == "启动")
    {
        //设置flag的值为true;
        flag = true;
        //按钮变为关闭
        ui->pushButton->setText("关闭");

    }
    else{
        //设置flag为flase
        flag = false;
        //复位按钮
        ui->pushButton->setText("启动");
    }
}
相关推荐
铅笔小新z15 分钟前
【C++】从理论到实践:类和对象完全指南(上)
开发语言·c++
rainFFrain21 分钟前
qt显示类控件---QCalendarWidget
开发语言·qt
蓁蓁啊35 分钟前
ARM交叉编译中编译与链接参数不一致导致的问题
开发语言·arm开发·嵌入式硬件
go_bai36 分钟前
Linux-线程
linux·开发语言·c++·经验分享·笔记
咖啡の猫36 分钟前
Python中的输出函数
开发语言·数据库·python
zzzsde1 小时前
【C++】二叉搜索树
开发语言·c++
无限进步_1 小时前
C语言atoi函数实现详解:从基础到优化
c语言·开发语言·c++·git·后端·github·visual studio
上去我就QWER1 小时前
C++中的堆和栈
开发语言·c++
HalvmånEver1 小时前
Linux:基础开发工具(四)
linux·运维·服务器·开发语言·学习·makefile
专注VB编程开发20年1 小时前
.net按地址动态调用VC++DLL将非托管DLL中的函数地址转换为.NET可调用的委托
开发语言·c++·c#·.net