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

  • 相关阅读:
    C语言统计成绩
    广州蓝景分享—前端开发JavaScript中的Array对象与其他数组
    linux系统操作/基本命令/vim/权限修改/用户建立
    多款可观测产品全面升级丨阿里云云原生 5 月产品月报
    今天聊一聊高性能系统架构设计是什么样的
    ES High Level Rest Client 超时问题排查及解决
    Lactoferrin-PEG-alginate 乳铁蛋白-聚乙二醇-海藻酸钠
    ubuntu 输入法
    查询快递 批量查询物流信息并筛选出无物流信单号
    附加:信息脱敏;
  • 原文地址:https://blog.csdn.net/weixin_65188498/article/details/133046880