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("启动");
    }
}
相关推荐
skywalk816324 分钟前
言知项目后续方向建议
开发语言·学习·编程
郝学胜_神的一滴1 小时前
Qt 高级开发 031:QListWidget图标布局实战
c++·qt
拉勾科研工作室1 小时前
区块链工程毕业论文题目【249个】
开发语言·javascript
z落落2 小时前
C#WinForm控件实战:Panel与单选框动态创建
开发语言·c#
ptc学习者2 小时前
python 中描述符@property property 大概的样子
开发语言·python
zmzb01032 小时前
Python课后习题训练记录Day129
开发语言·python
张忠琳2 小时前
【Go 1.26.4】Golang Map 深度解析
开发语言·后端·golang
Vertira2 小时前
如何对QT开发的软件进行打包[已解决]
开发语言·qt
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第110题】【并发篇】第10题:CAS 存在哪些问题?
java·开发语言·面试
石一峰6992 小时前
C 语言函数设计模式实战经验
c语言·开发语言·设计模式