WIDGET.CPP
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置窗口标题、图标
this->setWindowTitle("闹钟");
this->setWindowIcon(QIcon("D:\\clock.png"));
//给定时器实例化空间
timer=new QTimer(this);
connect(timer,&QTimer::timeout,this,&Widget::on_timeout_slot);
//设置语音播报
speech=new QTextToSpeech();
timer->start(1000);//启动定时器
}
Widget::~Widget()
{
delete ui;
}
//启动按钮对应的槽函数
void Widget::on_openBtn_clicked()
{
//禁用文本框
ui->lineEdit->setDisabled(true);
//禁用文本框
ui->textEdit->setDisabled(true);
//禁用启动按钮
ui->openBtn->setDisabled(true);
ui->closeBtn->setDisabled(false);
}
//关闭按钮对应的槽函数
void Widget::on_closeBtn_clicked()
{
ui->lineEdit->setDisabled(false);
ui->textEdit->setDisabled(false);
ui->openBtn->setDisabled(false);
//禁用关闭按钮
ui->closeBtn->setDisabled(true);
}
//处理timeout信号对应的槽函数
void Widget::on_timeout_slot()
{
QTime t=QTime::currentTime(); //获取系统时间
QString t1=t.toString("hh:mm:ss");//将系统时间转换为字符串
ui->label->setText(t1); //将时间展示在ui界面上
if(ui->label->text()==ui->lineEdit->text())
{
speech->say(ui->textEdit->toPlainText());//语言播报文本框内容
}
}
WIDGET.H
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
#include <QTime>
#include <QString>
#include <QtTextToSpeech/QTextToSpeech>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_closeBtn_clicked();
void on_openBtn_clicked();
void on_timeout_slot();
private:
Ui::Widget *ui;
QTimer *timer;
QTextToSpeech *speech;
};
#endif // WIDGET_H