QT学习文件操作类 QFile
(一)QFile
(1)主要功能
常用方法
示例代码
void Widget::on_pushOpenButton_clicked()
{char buff[100]={'\0'};QFile file("D:/test.txt");//打开文件if(!file.open(QIODevice::ReadOnly)){qDebug()<<"open file";}//读取文件if(file.read(buff,100)==-1){return;}//关闭文件file.close();qDebug()<<buff;
} (二) QTextStream
QTextStream 的主要特性成一个表格。请看下表

使用示例
void Widget::on_readButton_clicked()
{
/************法一***********/
// char buff[100]={'\0'};
// QFile file("D:/test.txt");
// //打开文件
// if(!file.open(QIODevice::ReadOnly)){
// qDebug()<<"open file";
// }
// //读取文件
// if(file.read(buff,100)==-1){
// return;
// }// //关闭文件
// file.close();
// qDebug()<<buff;/************法二***********/QFile file("D:/test.txt");//打开文件if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug()<<"open file";}//输入流QTextStream in(&file);//设置编码格式in.setCodec("UTF-8");//读取内容//读取整个文件//QString text = in.read(file.size());while(!in.atEnd()){QString line = in.readLine();qDebug()<<line;}//关闭文件file.close();
}void Widget::on_writeButton_clicked()
{QFile file("D:/test.txt");//打开文件if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){qDebug()<<"open file error";}//输入流QTextStream out(&file);//设置编码格式out.setCodec("UTF-8");//写入数据out<<"hello world hhh";//关闭文件file.close();
}
(三) 文件选择对话框 QFileDialog
(1)QFileDialog开发流程
QFileDialog dialog ;
dialog . setFileMode ( QFileDialog::AnyFile );
设置过滤器:如果需要,可以设置文件类型过滤器,以限制用户可以选择的文件类型。
dialog . setNameFilter ( tr ( "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XMLfiles (*.xml)" ));
显示对话框:通过调用 exec() 方法显示对话框,并在用户作出选择后执行相应的操作
if ( dialog . exec ()) {QStringList files = dialog . selectedFiles ();// 对用户选定的文件进行操作}
通过 selectedFiles 方法获取用户选择的文件路径列表,然后对这些文件进行相应的处理。 这是使用 QFileDialog 的基本模式。Qt 也允许使用静态方法直接创建和显示对话框,例如 QFileDialog::getOpenFileName() ,这些方法更简单,但提供的自定义选项较少。
void Widget::on_writeButton_clicked()
{QFile file("D:/test.txt");//打开文件if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){qDebug()<<"open file error";}//输入流QTextStream out(&file);//设置编码格式out.setCodec("UTF-8");//写入数据out<<"hello world hhh";//关闭文件file.close();
}void Widget::on_dialogButton_clicked()
{/********静态方法*******/
// QString fileName = QFileDialog::getOpenFileName(this,
// tr("Open Text"), "D:/", tr("Text files (*.txt)"));// qDebug()<<fileName;// 创建一个 QFileDialog 实例QFileDialog dialog(this);// 设置对话框为打开文件模式dialog.setFileMode(QFileDialog::ExistingFiles);// 设置文件过滤器dialog.setNameFilter(tr("Text (*.txt)"));dialog.setViewMode(QFileDialog::Detail);//显示对话框QStringList fileNames;if (dialog.exec())fileNames = dialog.selectedFiles();for(QString file : fileNames){qDebug()<<file<<endl;}
}
(3)QFileDialog 保存开发案例
void Widget::on_saveButton_clicked()
{QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),"D:/",tr("Text files (*.txt)"));qDebug()<<fileName;QFile file;file.setFileName(fileName);if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){qDebug() << "file open error";}QTextStream out(&file);out.setCodec("UTF-8");out << "Qdialog Write Data to the Txt File";file.close();
}
相关文章:
QT学习文件操作类 QFile
(一)QFile QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能,支持文本和二进制文件。QFile 继承自 QIODevice ,因此它可以像其他 IO 设备一样使用。 (1)主要功能 1. 文件读写…...
VOL_常用记录!!
目录 前端1.js如何获取当前时间(yy-MM-dd HH:MM:SS)2.http请求3.grid扩展js常用 后端1.待补充 前端 1.js如何获取当前时间(yy-MM-dd HH:MM:SS) getCurrentTime() {const now new Date();return ${now.getFullYear()}-${(now.getMonth() 1).toString().padStart(2, "0&…...
解决Typora导出HTML不显示图片
解决Typora导出HTML不显示图片 产生原因 Typora导出HTML不显示图片,可能时图片存放在我们的硬盘中。 我们可以将markdown中的图片转化为base64格式,嵌入到html中。 解决步骤 首先,下载 TyporaToBase64.jar 密码:45jq 其次,将…...
React Native开发iOS实战录
文章目录 背景环境准备主要工具xcode安装安装CocoaPods 基本步骤采用Expo go运行iOS模拟器运行安装在真机上测试发布到苹果商店 常见问题ruby3在macOS上编译失败import of module ‘glog.glog.log_severity’ appears within namespace ‘google’yarn网络问题pod安装失败unabl…...
C++局部变量与全局变量
在C中,可以为函数的参数指定默认值。这样做的好处是在调用函数时,如果没有提供对应的参数,那么将会使用默认值。 下面是一个求2个或3个数中最大数的函数的示例,其中使用了默认参数: #include <iostream> using…...
深入理解ES的倒排索引
目录 数据写入过程 词项字典 term dictionary 倒排表 posting list FOR算法 RBM算法 ArrayContainer BitMapContainer 词项索引 term index 在Elasticsearch中,倒排索引的设计无疑是惊为天人的,下面看下倒排索引的结构。 倒排索引分为词项索引【…...
HTML世界之第一重天
一、HTML 元素 注:HTML 文档由 HTML 元素定义。 1.HTML 元素 开始标签 * 元素内容 结束标签 * <p> 这是一个段落 </p> <a href"default.htm"> 这是一个链接 </a> <br> 换行 开始标签常被称为起始标签&…...
docker run报 docker: Error response from daemon: no command specified.
docker run报 docker: Error response from daemon: no command specified. 1. export出mysql的container为tar, 拷贝到另一台虚拟机, import该tar为image, docker run该image时报 docker: Error response from daemon: no command specified. 时间240211 export出mysql的con…...
vue3 之 商城项目—详情页
整体认识 路由配置 准备组件模版 <script setup></script><template><div class"xtx-goods-page"><div class"container"><div class"bread-container"><el-breadcrumb separator">">&…...
Linux笔记之Docker进行镜像备份与迁移
Linux笔记之Docker进行镜像备份与迁移 ——2024-02-11 code review! 文章目录 Linux笔记之Docker进行镜像备份与迁移1. 导出容器文件系统为 tar 归档文件2. 将 tar 归档文件导入为新的 Docker 镜像3. 运行新的 Docker 镜像并创建容器 1. 导出容器文件系统为 tar 归档文件 要导…...
C#,欧拉常数(Euler Constant)的算法与源代码
1 欧拉常数 欧拉常数最先由瑞士数学家莱昂哈德 欧拉 (Leonhard Euler) 在1735年发表的文章《De Progressionibus harmonicus observationes》中定义。欧拉曾经使用γ作为它的符号,并计算出了它的前6位,1761年他又将该值计算到了16位 。 欧拉常数最先由瑞…...
asio监听eventfd
c - Does BOOST asio supports eventfd? like epoll - Stack Overflow asio的官方example并没有asio监听eventfd的例子,但asio支持posix::stream_descriptor, 如果将eventfd包装成posix::stream_descriptor,并注册到io_context里…...
《统计学简易速速上手小册》第9章:统计学在现代科技中的应用(2024 最新版)
文章目录 9.1 统计学与大数据9.1.1 基础知识9.1.2 主要案例:社交媒体情感分析9.1.3 拓展案例 1:电商销售预测9.1.4 拓展案例 2:实时交通流量分析 9.2 统计学在机器学习和人工智能中的应用9.2.1 基础知识9.2.2 主要案例:预测客户流…...
问题排查利器 - 分布式 trace
在分布式系统开发中,系统间的调用往往会横跨多个应用之间的接口。负责的调用链路也导致了,当线上环境出现问题时,例如请求失败、延迟增加或错误发生,我们无法第一时间确定是哪个环节出了问题,这给故障排查和修复带来了…...
C++进阶(十四)智能指针
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、为什么需要智能指针?二、内存泄漏1、 什么是内存泄漏,内存泄漏的危…...
GPT最新进展:推出视频功能!迭代即将来临!
随着人工智能的不断进步,ChatGPT正准备以其全新的视频功能大跃进,同时,备受期待的GPT-5也即将在今年露面,预示着AI领域即将迎来一场变革。 在最近一期充满激情的Unconfuse Me播客中,OpenAI的首席执行官Sam Altman与技…...
各款Excel、word在线预览工具对比分析以及onlyoffice预览Excel加载时间长的解决方案
对于onlyoffice插件预览慢的问题分析: 研究了一下onlyoffice,得出以下结论! 对于预览慢的问题,原因出在文件类型上,文件类型为低版本xls而非新版xlsx文件,onlyoffice服务器会自动将该文件转换为xlsx文件再…...
【课程作业_01】国科大2023模式识别与机器学习实践作业
国科大2023模式识别与机器学习实践作业 作业内容 从四类方法中选三类方法,从选定的每类方法中 ,各选一种具体的方法,从给定的数据集中选一 个数据集(MNIST,CIFAR-10,电信用户流失数据集 )对这…...
LeetCode374. Guess Number Higher or Lower——二分查找
文章目录 一、题目二、题解 一、题目 We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to guess which number I picked. Every time you guess wrong, I will tell you whether the number I picked is higher or lower th…...
继承
1.继承的作用 有些类与类之间存在特殊关系,下级别的成员除了拥有上一级别的共性,还有自己的特性。 这个时候我们就可以考虑利用继承技术,减少重复代码。 总结: 继承的好处:可以减少重复的代码 class A : public B;…...
CloudFlare Workers实现高级邮箱转发:过滤垃圾邮件+自动分类实战
CloudFlare Workers实现高级邮箱转发:过滤垃圾邮件自动分类实战 邮箱已经成为现代人工作和生活中不可或缺的工具,但随之而来的垃圾邮件、广告推广和各类通知也让收件箱变得杂乱无章。对于开发者和技术爱好者来说,传统的邮箱转发功能往往不能满…...
LFM2.5-1.2B-Thinking-GGUF开源生态初探:与Ollama等工具的对比与集成
LFM2.5-1.2B-Thinking-GGUF开源生态初探:与Ollama等工具的对比与集成 1. 开源大模型本地部署生态概览 近年来,开源大模型本地部署工具呈现百花齐放的局面。从早期的单一模型加载器,发展到如今功能丰富的模型管理生态系统,开发者…...
霞鹜文楷GB:开源楷体字体的国标规范解决方案
霞鹜文楷GB:开源楷体字体的国标规范解决方案 【免费下载链接】LxgwWenkaiGB An open-source Simplified Chinese font derived from Klee One. 项目地址: https://gitcode.com/gh_mirrors/lx/LxgwWenkaiGB 在数字时代的中文排版领域,如何在保持视…...
从零开始:在Unity中完美实现视频播放功能的完整指南(附常见报错解决方案)
从零开始:在Unity中完美实现视频播放功能的完整指南(附常见报错解决方案) 在游戏开发中,视频播放功能的应用场景越来越广泛——从开场动画、过场剧情到UI背景,视频元素能为玩家带来更丰富的视听体验。Unity作为主流的…...
PHY芯片寄存器设计揭秘:从5位地址到分页扩展的演进史
PHY芯片寄存器设计演进:从5位地址到分页扩展的技术革命 当我们在享受千兆以太网带来的高速数据传输时,很少有人会想到这背后隐藏着一场持续了数十年的寄存器架构演进。PHY芯片作为网络通信的物理层核心,其寄存器设计经历了从简单固定到复杂可…...
Heritrix3源码深度解析:从CrawlURI到ProcessorChain的执行流程
Heritrix3源码深度解析:从CrawlURI到ProcessorChain的执行流程 【免费下载链接】heritrix3 Heritrix is the Internet Archives open-source, extensible, web-scale, archival-quality web crawler project. 项目地址: https://gitcode.com/gh_mirrors/he/herit…...
内网渗透实战:利用SSH密钥实现Linux主机间横向移动
1. SSH密钥横向移动的核心原理 当你第一次接触内网渗透时,可能会被各种复杂的技术术语吓到。其实SSH密钥横向移动的原理非常简单:就像用钥匙开锁一样,只要拿到目标主机的SSH私钥,就能像合法用户一样登录系统。我在实际渗透测试中发…...
SiameseUIE部署指南:test.py中custom_entities字段详解
SiameseUIE部署指南:test.py中custom_entities字段详解 1. 概述 如果你正在使用SiameseUIE模型进行信息抽取,那么test.py脚本中的custom_entities字段就是你最需要关注的核心配置。这个看似简单的字段,实际上决定了模型如何精准地从文本中抽…...
迪文串口屏C51开发避坑指南:从ModBus ASCII模式到音乐播放实战
迪文串口屏C51开发实战:从ModBus ASCII到音乐播放的深度解析 迪文串口屏在工业控制领域占据重要地位,其C51开发环境为开发者提供了高度灵活的定制能力。本文将聚焦三个典型开发场景:ModBus ASCII模式移植、C51变量定义导致的定时问题以及音乐…...
汽车智能制造如何落地?从“黑灯工厂”看AI赋能的关键路径
一、当工厂学会在黑暗中自行运转偌大的汽车生产车间里,灯光熄灭,只有AGV小车穿梭的微光和机械臂有节奏的运作声。没有工人的手电筒,也没有巡检的脚步,一切生产、检测、调度都在黑灯状态下有条不紊地进行。这并非科幻电影ÿ…...
