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("启动");
    }
}
相关推荐
啊啊啊啊啊!!!!1 小时前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++
松仔log2 小时前
Java中级——组合和继承
android·java·开发语言
上海安当技术3 小时前
C/S 桌面软件怎么接 UKey 强认证?C# SDK 与 C 动态库集成 WinForms/Qt/工控实战
c语言·qt·c#
(Charon)4 小时前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
雨田言炎4 小时前
五、Qt控件使用说明大全
开发语言·qt
bu_shuo5 小时前
MATLAB中的meshgrid和ndgrid
开发语言·matlab
我命由我123455 小时前
Jetpack Compose - MaterialExpressiveTheme 与 MaterialTheme、ColorScheme
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime
深海呐6 小时前
仓颉语言是ArkTs的上层语言吗?就像kotlin和Java
java·开发语言·kotlin·仓颉
熬夜苦读学习6 小时前
Qt--界面优化
开发语言·qt
白露与泡影6 小时前
聊聊物联网Java后端的核心技术难点(水表/电表/充电桩实战)
java·开发语言·物联网