• C++&qt Day10


    1.制作闹钟

    头文件

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include
    6. #include
    7. QT_BEGIN_NAMESPACE
    8. namespace Ui { class Widget; }
    9. QT_END_NAMESPACE
    10. class Widget : public QWidget
    11. {
    12. Q_OBJECT
    13. public:
    14. Widget(QWidget *parent = nullptr);
    15. ~Widget();
    16. void timerEvent(QTimerEvent *e) override; //定时器事件处理函数
    17. private slots:
    18. void on_startBtn_clicked();
    19. void on_stopBtn_clicked();
    20. private:
    21. Ui::Widget *ui;
    22. QTextToSpeech *speecher;
    23. int timer_id;
    24. };
    25. #endif // WIDGET_H

    源函数

    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. speecher = new QTextToSpeech(this);
    9. }
    10. Widget::~Widget()
    11. {
    12. delete ui;
    13. }
    14. //开始按钮对应的槽函数
    15. void Widget::on_startBtn_clicked()
    16. {
    17. timer_id = this->startTimer(1000);
    18. }
    19. //停止按钮
    20. void Widget::on_stopBtn_clicked()
    21. {
    22. //this->killTimer(timer_id);
    23. speecher->stop();
    24. ui->lineEdit->clear();
    25. }
    26. void Widget::timerEvent(QTimerEvent *e)
    27. {
    28. if(e->timerId() == timer_id)
    29. {
    30. QTime sys_t = QTime::currentTime(); //获取系统时间
    31. QString t = sys_t.toString("hh:mm:ss"); //将QTime类对象转换为字符串
    32. ui->nowtimeLeb->setText(t); //展示到ui界面
    33. if(t == ui->lineEdit->text())
    34. {
    35. speecher->say(ui->textEdit->toPlainText());
    36. }
    37. }
    38. }

    主函数

    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. }

    2.保存文件

    头文件

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. QT_BEGIN_NAMESPACE
    8. namespace Ui { class Widget; }
    9. QT_END_NAMESPACE
    10. class Widget : public QWidget
    11. {
    12. Q_OBJECT
    13. public:
    14. Widget(QWidget *parent = nullptr);
    15. ~Widget();
    16. private slots:
    17. void on_pushButton_clicked();
    18. private:
    19. Ui::Widget *ui;
    20. };
    21. #endif // WIDGET_H

    源文件

    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. }
    9. Widget::~Widget()
    10. {
    11. delete ui;
    12. }
    13. void Widget::on_pushButton_clicked()
    14. {
    15. QString fileName = QFileDialog::getSaveFileName(this,
    16. "保存文件",
    17. "./",
    18. "Text file(*.txt)");
    19. if(fileName.isNull())
    20. {
    21. QMessageBox::information(this, "提示", "用户取消了保存文件");
    22. return ;
    23. }
    24. QFile file(fileName);
    25. if(!file.isOpen())
    26. {
    27. if(!file.open(QFile::ReadWrite))
    28. {
    29. QMessageBox::critical(this, "失败", "文件打开失败");
    30. return;
    31. }
    32. }
    33. QString msg = ui->textEdit->toPlainText();
    34. file.write(msg.toUtf8());
    35. file.close();
    36. }

    主函数

    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. }

  • 相关阅读:
    Qt解决中文乱码QTextCodec
    配置Tomcat修改默认ROOT路径为自己的路径
    【算法题】LCP 50. 宝石补给
    C03-【计算机二级】Excel操作题(2)全国人口普查数据的统计分析
    ubuntu 18 断网/网络不通,利用 ifconfig -a查看只有lo
    利用噪声构建美妙的 CSS 图形
    5G技术:革命性的网络速度和其对未来智能应用的推动
    UML基础
    Docker命令 常用中间件运维部署,方便构建自己服务
    shell脚本学习06(小滴课堂)
  • 原文地址:https://blog.csdn.net/weixin_65188498/article/details/133046880