欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > QT作业4

QT作业4

2025/1/5 21:51:40 来源:https://blog.csdn.net/sinat_28344841/article/details/144831831  浏览:    关键词:QT作业4

Label上显示系统时间,程序运行就要有。
Lable2,:请输入闹钟的事件 行编辑器和启动按钮。启动按钮之后,到了行编辑器内的时间后,就开始语音播报最下方label中的内容。
语音播报5次
在这里插入图片描述
widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QTime>//时间类
#include <QTimerEvent>//时间事件类
#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;//定时器idint id2;//定时器2的idQTextToSpeech *speecher;//语音播报
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),speecher(new QTextToSpeech)
{ui->setupUi(this);QTime sys_time=QTime::currentTime();//获取系统时间QString t=sys_time.toString("hh:mm:ss");//将系统时间转成字符串ui->label->setText(t);//将当前时间显示在label中id=startTimer(1000);//每隔一秒执行timerEvent()函数}
//定时器超时执行该函数
void Widget::timerEvent(QTimerEvent *e){if(e->timerId()==id){//执行第一个label的定时功能QTime sys_time=QTime::currentTime();//获取系统时间QString t=sys_time.toString("hh:mm:ss");//将系统时间转成字符串ui->label->setText(t);//将当前时间显示在label中}if(e->timerId()==id2){//执行闹钟的定时功能qDebug()<<"hao"<<endl;speecher->say(ui->label_4->text());speecher->say(ui->label_4->text());speecher->say(ui->label_4->text());speecher->say(ui->label_4->text());speecher->say(ui->label_4->text());//关闭定时器killTimer(id2);}
}
Widget::~Widget()
{delete ui;
}//启动按钮的槽函数
void Widget::on_pushButton_clicked()
{//读取用户设置的闹钟时间QString t1=ui->lineEdit->text();qDebug()<<"用户设置的时间:"<<t1<<endl;//设置一个定时器,到达该时间就播报//求出定时器间隔时间QTime time1=QTime::currentTime();//当前时间QTime time2=QTime::fromString(t1);//label3中的时间int cha=time1.msecsTo(time2);//当前时间和设置时间相差的毫秒数qDebug()<<"相差毫秒数:"<<cha<<endl;qDebug()<<"相差秒数:"<<cha/1000<<endl;id2=startTimer(cha);
}

在这里插入图片描述
在这里插入图片描述

版权声明:

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

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