- #ifndef WIDGET_H
- #define WIDGET_H
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- QT_BEGIN_NAMESPACE
- namespace Ui { class Widget; }
- QT_END_NAMESPACE
-
- class Widget : public QWidget
- {
- Q_OBJECT
-
- public:
- Widget(QWidget *parent = nullptr);
- ~Widget();
-
- //定时器事件处理函数
- void timerEvent(QTimerEvent *e) override;
- private slots:
-
- void on_btn1_clicked();
-
- void on_btn2_clicked();
-
- private:
- Ui::Widget *ui;
-
- int timer_id1; //定时器的id号
-
- //定义一个播报员
- QTextToSpeech *speaker;
-
- };
- #endif // WIDGET_H
- #include "widget.h"
- #include "ui_widget.h"
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- //给播报员实例化空间
- speaker = new QTextToSpeech(this);
- }
-
- Widget::~Widget()
- {
- delete ui;
- }
- //启动启动定时器按钮对应的槽函数
- void Widget::timerEvent(QTimerEvent *e)
- {
- //id1
-
- if(e->timerId() == timer_id1)
- {
- //获取系统时间存放在sys_t中
- QTime sys_t1 = QTime::currentTime();
- //将QTime类转化成Qstring类
- QString t1 = sys_t1.toString("hh:mm:ss");
- //展示到ui界面
- ui->lab->setText(t1);
- //判断行文本编辑器,设置一个时间,如果时间到了就播报古诗
- if(ui->L_edit1->text() == t1 )
- {
- speaker->say(ui->T_edit1->toPlainText());
- }
- }
- }
-
-
-
- //启动系统时间的按钮
- void Widget::on_btn1_clicked()
- {
- timer_id1 = this->startTimer(1000);
-
- }
- //停止系统时间的按钮
- void Widget::on_btn2_clicked()
- {
- this->killTimer(timer_id1); //关闭给定定时器的id号
- speaker->stop();
- }

保存按钮对应的槽函数
- void Widget::on_keepbtn_clicked()
- {
- QString filename = QFileDialog::getSaveFileName(this,
- "另存为",
- "./",
- "All(*.*);;Images(*.png *.xpm *.jpg);;Text files(*.txt);;XML files(*.xml)");
- if(filename.isNull())
- {
- QMessageBox::information(this,"提示","用户取消了文件保存");
- return ;
- }
- //实例化一个文件对象
- QFile file(filename);
- if(!file.open(QFile::ReadWrite))
- {
- QMessageBox::critical(this,"失败","文件打开失败");
- return ; //文件打开失败
- }
- //获取需要保存的内容
- QString content =ui->textEdit->toPlainText();
- QByteArray msg1 = content.toUtf8();
- file.write(msg1);
- file.close();
-
- }