QT设置闹钟超时播报

头文件

复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QTimerEvent>
#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 *e);


private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui;
    int id;
    int id1;
    QTextToSpeech *speecher;
};
#endif // WIDGET_H

测试文件

复制代码
#include "widget.h"    
#include "ui_widget.h"  
   
Widget::Widget(QWidget *parent)  
    : QWidget(parent) // 调用基类的构造函数,设置父对象  
    , ui(new Ui::Widget) // 实例化UI对象  
    , speecher(new QTextToSpeech(this)) // 实例化QTextToSpeech对象,并设置当前Widget为父对象  
{  
    ui->setupUi(this); / 
    id = startTimer(1000); // 启动一个定时器,每隔1000毫秒(1秒)触发一次timerEvent  
  
    // 设置lineEdit的样式  
    ui->lineEdit->setStyleSheet("background-color: rgba(255, 255, 255, 150); border: 1px solid gray; border-radius: 5px;");  
}  
    
Widget::~Widget()  
{  
    delete ui;   
}  
  
// 当pushButton被点击时调用的槽函数  
void Widget::on_pushButton_clicked()  
{  
    id1 = startTimer(1000); // 启动另一个定时器,与id不同,用于不同的定时任务  
}  
  
// 重写QWidget的timerEvent函数,处理定时器事件  
void Widget::timerEvent(QTimerEvent *e)  
{  
    // 检查是哪个定时器触发了事件  
    if(e->timerId()==id)  
    {  
        QTime sys_time=QTime::currentTime(); // 获取当前系统时间  
        QString t=sys_time.toString("hh--mm--ss"); // 将时间格式化为字符串  
        ui->label->setText(t); // 将时间字符串设置到label上  
    }  
    else if(e->timerId() == id1)  
    {  
        // 检查lineEdit中的文本是否与label中的文本相同  
        if(ui->lineEdit->text() == ui->label->text())  
        {  
            // 如果相同,则使用QTextToSpeech播放label_3中的文本5次  
            for(int i=0; i<5;i++)  
            {  
                speecher->say(ui->label_3->text());  
            }  
        }  
    }  
}
相关推荐
晔子yy2 小时前
【JAVA探索之路】从头开始讲透、实现单例模式
java·开发语言·单例模式
阿正的梦工坊7 小时前
JavaScript 微任务与宏任务完全指南
开发语言·javascript·ecmascript
知行合一。。。8 小时前
Python--05--面向对象(属性,方法)
android·开发语言·python
青梅橘子皮8 小时前
C语言---指针的应用以及一些面试题
c语言·开发语言·算法
浅时光_c8 小时前
3 shell脚本编程
linux·开发语言·bash
Evand J9 小时前
【三维轨迹目标定位,CKF+RTS,MATLAB程序】基于CKF与RTS平滑的三维非线性目标跟踪(距离+方位角+俯仰角)
开发语言·matlab·目标跟踪
今天又在写代码10 小时前
java-v2
java·开发语言
competes10 小时前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql
Ulyanov11 小时前
用Pyglet打造AI数字猎人:从零开始的Python游戏开发与强化学习实践
开发语言·人工智能·python
独自归家的兔11 小时前
OCPP 1.6 协议详解:StatusNotification 状态通知指令
开发语言·数据库·spring boot·物联网