当前位置: 首页 > news >正文

QT-day3

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

void Widget::on_savebton_clicked()
{QString fileName = QFileDialog::getSaveFileName(this,"保存","./","All(*.*);;Images(*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)");QFile file(fileName);if(!file.isOpen()){if(!file.open(QFile::ReadWrite)){QMessageBox::critical(this,"失败","文件保存失败");}}QString msg = ui->textEdit->toPlainText();file.write((msg.toUtf8()));file.close();}

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimerEvent>
#include <QTime>
#include <QTextToSpeech>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void timerEvent(QTimerEvent *e);private slots:void on_startbtn_clicked();void on_stopbtn_clicked();private:Ui::Widget *ui;int timer_id;int timer_id2;QTextToSpeech *speecher;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);speecher = new QTextToSpeech(this);ui->lineEdit->setText("10秒读一次");}Widget::~Widget()
{delete ui;
}void Widget::on_startbtn_clicked()
{timer_id = this->startTimer(1000);timer_id2 = this->startTimer(10000);
}void Widget::on_stopbtn_clicked()
{this->killTimer(timer_id);this->killTimer(timer_id2);
}void Widget::timerEvent(QTimerEvent *e)
{if(e->timerId() == timer_id){QTime sys_t = QTime::currentTime();QString t = sys_t.toString("hh:mm:ss");ui->timelab->setText(t);}if(e->timerId() == timer_id2){speecher->say(ui->textEdit->toPlainText());}}

测试结果

思维导图

http://www.lryc.cn/news/170679.html

相关文章:

  • 开发自测的测试用例设计方法
  • 【AI视野·今日Sound 声学论文速览 第七期】Tue, 19 Sep 2023
  • MySQL 清空表 截断表
  • 2020-2023中国高等级自动驾驶产业发展趋势研究-中国高等级自动驾驶发展近况
  • Spring学习之ImportBeanDefinitionRegistrar接口
  • React 全栈体系(八)
  • 4.开放-封闭原则
  • oracle递归with子句
  • 如何在Proteus进行STM32F103C8T6模拟以及keil5开发
  • C# OpenCvSharp 图片模糊检测(拉普拉斯算子)
  • 志高团队:广阔前景 全新的投资理财体验
  • 基于自编译的onlyoffice镜像,关于修改字体的问题
  • 1.wifi开发,wifi连接初次连接电脑没有识别,搭建环境
  • 【JAVA-Day25】解密进制转换:十进制向R进制和R进制向十进制的过程
  • 牛客网字节面试算法刷题记录
  • QT连接Sqlite
  • ChatGPT AIGC 完成各省份销售动态可视化分析
  • 基于SpringBoot+Vue的餐饮管理系统设计与实现
  • 2023 亲测好用版VScode配置文件
  • jmeter基础压力教程
  • 图片格式大全
  • 5.14.1.2 Get Log Page – Smart Log
  • 【深度学习实验】线性模型(一):使用NumPy实现简单线性模型:搭建、构造损失函数、计算损失值
  • springcloud3 分布式事务-seata的四种模式总结以及异地容灾
  • 【办公类-16-06】20230901大班运动场地分配表-斜线排列、5天循环、不跳节日,手动修改节日”(python 排班表系列)
  • java学习--day13 (static关键字、异常)
  • 英飞凌TC3xx--深度手撕HSM安全启动(五)--TC3xx HSM启动流程、通信机制分析
  • 【窗体】Winform两个窗体之间通过委托事件进行值传递,基础篇
  • mac使用指南
  • Git 版本控制系统 笔记