
widget.h
namespace Ui { class Widget; }
class Widget : public QWidget
Widget(QWidget *parent = nullptr);
void timerEvent(QTimerEvent *event) override;
void on_initBtn_clicked();
void on_stopBtn_clicked();
widget.cpp
Widget::Widget(QWidget *parent)
speecher = new QTextToSpeech(this);
speecher->setLocale(QLocale::Chinese);
this->setFixedSize(400, 300);
ui->timeLab->move(40, 40);
ui->timeLab->resize(140, 90);
ui->timeLab->setAlignment(Qt::AlignCenter);
QFont font("隶书", 16, 75);
ui->timeLab->setFont(font);
ui->timeLin->move(ui->timeLab->x()+180,ui->timeLab->y());
ui->timeLin->resize(140, 40);
ui->initBtn->move(ui->timeLin->x(), ui->timeLin->y()+50);
ui->initBtn->resize(60, 40);
ui->initBtn->setText("启动");
ui->stopBtn->move(ui->initBtn->x()+80, ui->initBtn->y());
ui->stopBtn->resize(60, 40);
ui->stopBtn->setText("停止");
ui->warnText->move(ui->timeLab->x(),ui->timeLab->y()+130);
ui->warnText->resize(320, 90);
ui->warnText->setText("荷尽已无擎雨盖\n\t菊残犹有傲霜枝");
ui->warnText->setFont(font);
ui->warnText->setAlignment(Qt::AlignCenter);
this->timer_id1 = startTimer(1000);
void Widget::timerEvent(QTimerEvent *event)
QTime sys_t = QTime::currentTime();
QString t = sys_t.toString("hh:mm:ss");
if(event->timerId() == timer_id1)
}else if(ui->timeLin->text() == t)
speecher->say(ui->warnText->toPlainText());
void Widget::on_initBtn_clicked()
this->timer_id2 = startTimer(1000);
void Widget::on_stopBtn_clicked()
this->killTimer(timer_id2);

main.cpp
int main(int argc, char *argv[])
QApplication a(argc, argv);
widget.ui

效果图
