闹钟
头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QTimer>
#include<QTime>
#include<QTimerEvent>
#include<QDateTime>
#include<QDebug>
#include <QTextToSpeech>
#include <QMessageBox>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_time_label();
void on_startBut_clicked();
void on_closeBut_clicked();
private:
Ui::MainWindow *ui;
//定义一个定时器指针
QTimer *t1;
//定义一个定时器的标识
int tid;
//定义播报指针
QTextToSpeech *tts;
};
#endif // MAINWINDOW_H
全局函数
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tts = new QTextToSpeech(this);
//给定时器指针实例化空间
t1=new QTimer(this);
t1->start(0);
connect(t1,&QTimer::timeout,this,&MainWindow::on_time_label);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_time_label()
{
//获取系统当前时间
QTime sys_time=QTime::currentTime();
//将qtime转换成字符串
QString time =sys_time.toString("hh:mm:ss");
//设置lab内容居中显示
ui->time_label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
//将lab中字体设置大小
ui->time_label-> setFont(QFont("Arial", 30));
//将时间展示到ui界面
ui->time_label->setText(time);
QString text=ui->set_time->text();
QString systime=ui->time_label->text();
QString word=ui->textEdit->toPlainText();
if(text==systime)
{
int numReminders = 5; //需要提醒的次数
for (int i = 0; i < numReminders; i++) {
tts->say(word);
}
QMessageBox box( //构造出一个box对象,使用有参构造完成
QMessageBox::Information, //图标
"问题对话框", //对话框标题
word, //文本内容
QMessageBox::Ok, //提供的按钮
this); //父组件
//将对象 进入运行态
int ret = box.exec();
//对用户选择的结果进行判断
if(ret == QMessageBox::Ok)
{
this->close();
}
}
}
void MainWindow::on_startBut_clicked()
{
if(ui->startBut->text()=="启动")
{
//启动定时器
// t1->start(0); //功能:启动一个时间间隔为0秒的定时器
//将开始按钮设置为不可用
ui->startBut->setDisabled(true);
//将暂定按钮设置为可用
ui->closeBut->setEnabled(true);
}
}
void MainWindow::on_closeBut_clicked()
{
if(ui->closeBut->text()=="关闭")
{
//停止定时器
//t1->stop();
//将开始按钮设置可用
ui->startBut->setEnabled(true);
//将结束按钮设置为不可用
ui->closeBut->setDisabled(true);
}
}