• QT Day3


    完成文本编辑器的保存工作

    1. //保存按钮对应的槽函数
    2. void Widget::on_saveBtn_clicked()
    3. {
    4. //文本编辑器的保存工作
    5. QString fileName=QFileDialog::getSaveFileName(this, //父组件
    6. "选择要保存的文件", //对话框标题
    7. "./", //起始路径
    8. "All(*.*);;Images(*.png *.jpg *.xpm);;Text files (*.txt)");
    9. //过滤器
    10. //判断是否选择文件
    11. if(fileName.isNull())
    12. {
    13. QMessageBox::information(this,"提示","用户取消了保存文件");
    14. return;
    15. }
    16. qDebug()<//得到文件路径
    17. //文件操作
    18. //1、实例化一个文件对象
    19. QFile file(fileName);
    20. file.open(QIODevice::WriteOnly);//创建文件,且权限为只写
    21. QString msg = ui->textEdit->toPlainText();//获取编辑器的文本内容
    22. QByteArray saveName;
    23. saveName.append(msg);
    24. file.write(saveName);
    25. file.close();
    26. }

    .h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. #include //文本转语音类
    9. #include
    10. QT_BEGIN_NAMESPACE
    11. namespace Ui { class Widget; }
    12. QT_END_NAMESPACE
    13. class Widget : public QWidget
    14. {
    15. Q_OBJECT
    16. public:
    17. Widget(QWidget *parent = nullptr);
    18. ~Widget();
    19. void timerEvent(QTimerEvent *e) override;
    20. private slots:
    21. void on_btn2_clicked();
    22. void on_btn1_clicked();
    23. private:
    24. Ui::Widget *ui;
    25. int timer_id; //定时器的id号
    26. QLabel *label;
    27. //定义一个播报员
    28. QTextToSpeech *speecher;
    29. };
    30. #endif // WIDGET_H

    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. timer_id=this->startTimer(1);
    9. ui->lineEdit->setPlaceholderText("闹钟时间");
    10. //给播报员实例化空间
    11. speecher=new QTextToSpeech(this);
    12. }
    13. Widget::~Widget()
    14. {
    15. delete ui;
    16. }
    17. //定时器事件处理函数
    18. void Widget::timerEvent(QTimerEvent *e)
    19. {
    20. if(e->timerId()==timer_id) //说明定时器1到位
    21. {
    22. QTime sys_t=QTime::currentTime(); //获取系统时间
    23. //将QTmie类对象转换为字符串
    24. QString t=sys_t.toString("hh:mm:ss"); //转换成我想要的格式
    25. //展示到ui界面
    26. ui->label->setText(t);
    27. if(ui->lineEdit->text()==ui->label->text())
    28. {
    29. speecher->say(ui->textEdit->toPlainText());
    30. }
    31. }
    32. }
    33. //关闭系统时间的槽函数
    34. void Widget::on_btn2_clicked()
    35. {
    36. this->killTimer(timer_id); //关闭给定的定时器
    37. }
    38. //启动系统时间的槽函数
    39. void Widget::on_btn1_clicked()
    40. {
    41. timer_id=this->startTimer(1000);
    42. }

  • 相关阅读:
    c++ 构造函数介绍及一些使用的注意点
    函数重入、函数重载、函数重写自己理解
    CompletableFuture-链式语法和join方法介绍
    QML<10> qml 文件的插件封装 ,打包发布 ,隐藏qml文件
    Redis缓存的雪崩、穿透、击穿
    6.30 基于自编码器卷积神经网络的室内定位
    electron 升级 v22 遇到问题
    进程和线程的区别与联系
    复旦MBA项目GNW海外课程|连线全球顶尖商学院,跨时空学习精彩无限!
    【GhostNet】《GhostNet:More Features from Cheap Operations》
  • 原文地址:https://blog.csdn.net/weixin_58469613/article/details/133045894