电子时钟
UI界面
实现代码
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLCDNumber>
#include <QTime>
#include <QDebug>
#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 *);
private slots:
void on_start_clicked();
void on_stop_clicked();
private:
Ui::Widget *ui;
QLCDNumber *LCD;
QLCDNumber *LCD2;
int showflag=1;
//定义一个播报者
QTextToSpeech speech;
int begin=0;
QString strTxtEdt;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowTitle("电子时钟");
ui->lcd1->setDigitCount(8);
ui->lcd2->setDigitCount(8);
QDateTime currentTime=QDateTime::currentDateTime();
QString timeText = currentTime.toString("yy-MM-dd");
ui->lcd1->display(timeText);
startTimer(1000);
}
Widget::~Widget()
{
delete ui;
}
void Widget::timerEvent(QTimerEvent *)
{
QTime sysTime = QTime::currentTime();
QString timeText = sysTime.toString("hh:mm:ss");
if(showflag)
{
timeText[5]=':';
showflag=false;
}
else
{
timeText[5]=' ';
showflag=true;
}
ui->lcd2->display(timeText);
if(begin==1)
{
QString alarm =ui->alarm->text();
//qDebug()<<alarm;
timeText = sysTime.toString("h:mm");
if(alarm==timeText)
{
QTextToSpeech::State state=speech.state();
if(state==0)
{
speech.say(strTxtEdt);
}
}
}
}
void Widget::on_start_clicked()
{
strTxtEdt = ui->info->toPlainText();
ui->alarm->setEnabled(false);
ui->info->setEnabled(false);
begin=1;
}
void Widget::on_stop_clicked()
{
ui->alarm->setEnabled(true);
ui->info->setEnabled(true);
begin=0;
speech.stop();
}
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
运行结果
选择闹铃时间,输入播报文本,点击start
锁定播报文本和闹铃设置,当到达闹铃时间,循环播报文本内容
若超过所定时间则停止播报
点击stop,解锁播报文本和闹铃,若播报未停止则停止播报

该博客介绍了一个使用QT框架实现的电子时钟应用,具有定时播报功能。用户可以设定闹钟时间并输入播报文本,当到达设定时间时,应用会循环播报输入的文本内容。点击开始按钮启动闹钟和播报,而停止按钮则用于取消闹钟和播报。
1069

被折叠的 条评论
为什么被折叠?



