#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//将取消按钮设置不可用
ui->close_butt->setEnabled(false);
//固定窗口大小
this->setFixedSize(500,350);
//设置标签字体格式
QFont font("幼圆",20);
ui->label->setFont(font);
//启动定时器1 功能:在标签上显示时间
tid_1 = this->startTimer(1000);
}
Widget::~Widget()
{
delete ui;
}
//定时器事件处理函数
void Widget::timerEvent(QTimerEvent *e)
{
//标签显示当前时间
if(e->timerId() == tid_1)
{
sys_dt = QDateTime::currentDateTime();
dt = sys_dt.toString("h:mm:ss");
ui->label->setText(dt);
ui->label->setAlignment(Qt::AlignCenter);
}
if(e->timerId() == tid_2)
{
if(sys_dt == dt_cmp)
{
speech.say(ui->textEdit->toPlainText());
}
}
}
//开始按钮
void Widget::on_star_butt_clicked()
{
//获取lineedit中的内容
dt_cmp = ui->lineEdit->text();
//将取消按钮设置可用
ui->close_butt->setEnabled(true);
//设置文本框,行文本,启动按钮不可用
ui->textEdit->setEnabled(false);
ui->lineEdit->setEnabled(false);
ui->star_butt->setEnabled(false);
//启动定时器2 功能:定时
tid_2 = this->startTimer(1000);
}
void Widget::on_close_butt_clicked()
{
//将取消按钮设置不可用
ui->close_butt->setEnabled(false);
//设置文本框,行文本,启动按钮可用
ui->textEdit->setEnabled(true);
ui->lineEdit->setEnabled(true);
ui->star_butt->setEnabled(true);
//关闭定时器2
this->killTimer(tid_2);
}
//重载 == 运算符
bool operator==(const QDateTime &d, const QString s)
{
QString dt = d.toString("h:mm:ss");
// int i = 0;
// int j = 0;
bool fg = true;
// while((i++) < s.length())
// {
// if(i == s.length()-1)
// return fg;
// if(s[i] < '0' || s[i] > '9')
// {
// if(j ==0)
// {
// if(dt.mid(0,i-j) != s.mid(0,i-j))
// {
// fg = false;
// return fg;
// }
// }
// j = i;
// if(dt.mid(j+1,i-j) != s.mid(j+1,i-j))
// {
// fg = false;
// return fg;
// }
// }
// }
if(dt != s)
fg = false;
return fg;
}
//将取消按钮设置不可用
ui->close_butt->setEnabled(false);
//固定窗口大小
this->setFixedSize(500,350);
//设置标签字体格式
QFont font("幼圆",20);
ui->label->setFont(font);
//启动定时器1 功能:在标签上显示时间
tid_1 = this->startTimer(1000);
}
Widget::~Widget()
{
delete ui;
}
//定时器事件处理函数
void Widget::timerEvent(QTimerEvent *e)
{
//标签显示当前时间
if(e->timerId() == tid_1)
{
sys_dt = QDateTime::currentDateTime();
dt = sys_dt.toString("h:mm:ss");
ui->label->setText(dt);
ui->label->setAlignment(Qt::AlignCenter);
}
if(e->timerId() == tid_2)
{
if(sys_dt == dt_cmp)
{
qDebug()<<9999;
QTextToSpeech speech;
speech.say(ui->textEdit->toPlainText());
}
}
}
//开始按钮
void Widget::on_star_butt_clicked()
{
//获取lineedit中的内容
dt_cmp = ui->lineEdit->text();
//将取消按钮设置可用
ui->close_butt->setEnabled(true);
//设置文本框,行文本,启动按钮不可用
ui->textEdit->setEnabled(false);
ui->lineEdit->setEnabled(false);
ui->star_butt->setEnabled(false);
//启动定时器2 功能:定时
tid_2 = this->startTimer(1000);
}
void Widget::on_close_butt_clicked()
{
//将取消按钮设置不可用
ui->close_butt->setEnabled(false);
//设置文本框,行文本,启动按钮可用
ui->textEdit->setEnabled(true);
ui->lineEdit->setEnabled(true);
ui->star_butt->setEnabled(true);
//关闭定时器2
this->killTimer(tid_2);
}
//重载 == 运算符
bool operator==(const QDateTime &d, const QString s)
{
QString dt = d.toString("hh:mm:ss");
int i = 0;
int j = 0;
bool fg = true;
while((i++) < s.length())
{
if(i == s.length()-1)
return fg;
if(s[i] < '0' || s[i] > '9')
{
if(j ==0)
{
if(dt.mid(0,i-j) != s.mid(0,i-j))
{
fg = false;
return fg;
}
}
j = i;
if(dt.mid(j+1,i-j) != s.mid(j+1,i-j))
{
fg = false;
return fg;
}
}
}
return fg;
}
效果图