#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QTextEdit>
#include <QString>
#include <QDateTime>
#include <QTimer>
#include <QPainter>
#include <QMessageBox>
#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 paintEvent(QPaintEvent *event)override;
void timerEvent(QTimerEvent *event)override;
private:
Ui::Widget *ui;
QPushButton *btn1;
QPushButton *btn2;
QLineEdit *let;
QLabel *bel;
QTextEdit *tet;
QTimer *time;
QTextToSpeech *sp=new QTextToSpeech(this);
public slots:
void btn_1();
void btn_2();
void jsq();
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QFont>
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
this->setFixedSize(600,400);
btn1=new QPushButton("启动",this);
btn1->resize(90,40);
btn1->move(365,90);
btn2=new QPushButton("关闭",this);
btn2->resize(90,40);
btn2->move(475,90);
let=new QLineEdit(this);
let->resize(200,40);
let->move(365,30);
let->setPlaceholderText("设置时间: 00:00");
bel=new QLabel(this);
bel->resize(300,100);
bel->move(35,30);
tet=new QTextEdit(this);
tet->move(35,160);
tet->resize(530,210);
tet->setPlaceholderText("输入定时播报内容:默认为嘀嘀嘀嘀嘀嘀嘀嘀嘀");
QFont a;
a.setPixelSize(30);
bel->setFont(a);
tet->setFont(a);
a.setPixelSize(15);
a.setWeight(75);
let->setFont(a);
btn1->setFont(a);
btn2->setFont(a);
time=new QTimer(this);
}
void Widget::paintEvent(QPaintEvent *event)
{
this->startTimer(100);
QPainter painter(this);
QPen pen;
pen.setColor("black");
pen.setWidth(15);
pen.setStyle(Qt::SolidLine);
painter.setPen(pen);
painter.drawRect(0,0,this->width(),this->height());
painter.drawRect(btn1->x(),btn1->y(),btn1->width(),btn1->height());
painter.drawRect(btn2->x(),btn2->y(),btn2->width(),btn2->height());
painter.drawRect(let->x(),let->y(),let->width(),let->height());
painter.drawRect(tet->x(),tet->y(),tet->width(),tet->height());
pen.setWidth(8);
painter.setPen(pen);
painter.drawRect(bel->x(),bel->y(),bel->width(),bel->height());
connect(btn1,&QPushButton::clicked,this,&Widget::btn_1,Qt::UniqueConnection);
connect(btn2,&QPushButton::clicked,this,&Widget::btn_2,Qt::UniqueConnection);
connect(time,&QTimer::timeout,this,&Widget::jsq,Qt::UniqueConnection);
}
void Widget::timerEvent(QTimerEvent *event)
{
QDateTime sys_dt=QDateTime::currentDateTime();
bel->setText(sys_dt.toString(" yyyy-MM-d hh:mm:ss"));
}
void Widget::btn_1()
{
QString str=let->text();
qDebug()<<str[0]<<str[1];
if('0'>str[0]||str[0]>'2'||'0'>str[1]||str[1]>'9'||str[2]!=':'||'0'>str[3]||str[3]>'5'||'0'>str[4]||str[4]>'9'||str[5]!='\x0')
{
QMessageBox::information(this,"提示","请按格式输入时间",QMessageBox::Ok);
return;
}
btn1->setEnabled(false);
let->setEnabled(false);
btn2->setEnabled(true);
time->start(100);
}
void Widget::btn_2()
{
btn2->setEnabled(false);
let->setEnabled(true);
btn1->setEnabled(true);
time->stop();
}
void Widget::jsq()
{
QString str=let->text();
QDateTime sys_dt=QDateTime::currentDateTime();
if(sys_dt.toString("hh:mm")==str)
{
sp->say(tet->toPlainText());
if(tet->toPlainText()=="")
{
sp->say("嘀嘀嘀嘀嘀嘀嘀嘀嘀");
}
time->stop();
btn1->setEnabled(true);
let->setEnabled(true);
}
}
Widget::~Widget()
{
delete ui;
