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;…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
OPENCV图形计算面积、弧长API讲解(1)
一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的API…...
Electron简介(附电子书学习资料)
一、什么是Electron? Electron 是一个由 GitHub 开发的 开源框架,允许开发者使用 Web技术(HTML、CSS、JavaScript) 构建跨平台的桌面应用程序(Windows、macOS、Linux)。它将 Chromium浏览器内核 和 Node.j…...
Centos 7 服务器部署多网站
一、准备工作 安装 Apache bash sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd创建网站目录 假设部署 2 个网站,目录结构如下: bash sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html添加测试…...
