• QT day4


     1.

     

    widget.h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include //定时器事件类
    5. #include//时间事件类
    6. #include //时间类
    7. #include //文字转语音类
    8. QT_BEGIN_NAMESPACE
    9. namespace Ui { class Widget; }
    10. QT_END_NAMESPACE
    11. class Widget : public QWidget
    12. {
    13. Q_OBJECT
    14. public:
    15. Widget(QWidget *parent = nullptr);
    16. ~Widget();
    17. void timerEvent(QTimerEvent *e);//重写定时器事件函数的声明
    18. private slots:
    19. void on_startBtn_clicked(); //自定义启动按钮槽函数
    20. private:
    21. Ui::Widget *ui;
    22. int tId;//定义时间器ID
    23. QTextToSpeech* speecher; // 用QTextToSpeech实例化一个speecher对象
    24. };
    25. #endif // WIDGET_H

     

    main.cpp

    1. #include "widget.h"
    2. #include
    3. int main(int argc, char *argv[])
    4. {
    5. QApplication a(argc, argv);
    6. Widget w;
    7. w.show();
    8. return a.exec();
    9. }

     

    widget.cpp 

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. ui->setupUi(this);
    8. tId=startTimer(1000);//当1秒钟时间超时时,自动走timerEvent()
    9. speecher = new QTextToSpeech(this); // 给speecher初始化和申请空间
    10. }
    11. Widget::~Widget()
    12. {
    13. delete ui;
    14. }
    15. void Widget::timerEvent(QTimerEvent *e)//重写定时器事件函数的实现
    16. {
    17. if(e->timerId()==tId)//判断是哪个定时器
    18. {
    19. //获取系统时间
    20. QTime sys_time =QTime::currentTime();
    21. //将系统时间转换成字符串
    22. QString t=sys_time.toString("hh:mm:ss");
    23. //将系统时间放入lab中
    24. ui->localtimeLab->setText(t);
    25. //将系统时间放入lab中
    26. ui->localtimeLab->setAlignment(Qt::AlignCenter);
    27. if(ui->showtimeLab->text()==t)//判显示的闹钟时间断标签里的时间是否和系统时间相等
    28. {
    29. for(int i=0;i<5;i++)
    30. {
    31. speecher->say(ui->contentLab->text());//把内容lab中的文字转换成语音,循环播报5次
    32. }
    33. }
    34. }
    35. }
    36. void Widget::on_startBtn_clicked()
    37. {
    38. // speecher->say("原神,启动!");
    39. ui->showtimeLab->setText(ui->LineEdit->text());//将文本编辑器的内容输入到显示闹钟时间的标签上
    40. ui->showtimeLab->setAlignment(Qt::AlignCenter);// 文字居中显示
    41. ui->LineEdit->setText("");// 清空输入框
    42. }

    2.思维导图

  • 相关阅读:
    Mybatis-Plus——ListTypeHandler处理类型为list<T>字段的增改查
    【Java实现】合并两个有序链表
    eBay测评自养号,卖家如何运营?
    JVM的类加载机制
    springboot手动引入jar包的方式
    如何学习RISC-V
    解决tomcat的8080端口被占用
    kotlin基础教程:<5>集合与数组
    Docker 07 部署Tomcat
    mysql索引、事务、存储引擎
  • 原文地址:https://blog.csdn.net/u014137683/article/details/134448154