当前位置: 首页> 教育> 就业 > QT设置闹钟超时播报

QT设置闹钟超时播报

时间:2025/7/9 22:13:25来源:https://blog.csdn.net/m0_75109289/article/details/142147250 浏览次数:1次

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QTimerEvent>
#include<QTime>
#include<QTextToSpeech>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic: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());  }  }  }  
}

关键字:QT设置闹钟超时播报

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: