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());  
            }  
        }  
    }  
}
相关推荐
C-SDN花园GGbond34 分钟前
【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
c语言·开发语言·数据结构·排序算法
迷迭所归处2 小时前
C++ —— 关于vector
开发语言·c++·算法
架构文摘JGWZ2 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
leon6252 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
锦亦之22333 小时前
QT+OSG+OSG-earth如何在窗口显示一个地球
开发语言·qt
我是苏苏3 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言
姜太公钓鲸2333 小时前
c++ static(详解)
开发语言·c++
菜菜想进步3 小时前
内存管理(C++版)
c语言·开发语言·c++
2301_789985943 小时前
Java语言程序设计基础篇_编程练习题*18.29(某个目录下的文件数目)
java·开发语言·学习
知星小度S3 小时前
C语言——自定义类型
c语言·开发语言