基于QT5的文件读取程序的实现
目录
- 一、文件读写操作QFile
- 1.1 头文件
- 1.2 内部函数
- 二、UI设计
- 三、代码
- 3.1 mainwindow.h
- 3.2 mainwindow.c
- 四、效果
一、文件读写操作QFile QT自带了一个文件操作的类->
QFile
,实验中也是着重 QFile
的操作1.1 头文件
#include
1.2 内部函数
![基于QT5的文件读取程序的实现](http://img.readke.com/220515/101P464Y-0.jpg)
文章图片
这些函数没必要都去记住,我们只需要记住简单的例如
open()
、readLine()
、atEnd()
、close()
等常用的函数即可- 首先我们
new
一个QFile
对象的时候有四种构造方法,通常来说我们传入 文件的路径名 就好了 - 然后我们要调用
open()
函数,这个函数是告诉操作系统我们通过什么样的方式打开,例如只读打开、只写打开、可读可写打开……,这个和我们在C语言中的文件打开函数是类似的,我们在QIODevice
看到一个枚举类型的OpenModeFlag
打开方式
enum OpenModeFlag {NotOpen = 0x0000,ReadOnly = 0x0001,WriteOnly = 0x0002,ReadWrite = ReadOnly | WriteOnly,Append = 0x0004,Truncate = 0x0008,Text = 0x0010,Unbuffered = 0x0020,NewOnly = 0x0040,ExistingOnly = 0x0080};
这些就是文件打开的一些模式了,可以根据自己的需求选用,我们这里既然是文件的读取显示操作,那么只需要读取,于是我们的打开方式就是:
QIODevice::ReadOnly
然后就是对这个文件从头到尾读取,在以前我们学的C语言中有一个文件结束标志
EOF
,一般这个EOF
是 ? 1 -1 ?1 但是这里的QFile
提供了一个函数atEnd()
如果当我们读到了文件末尾,那么就会返回一个true
例如:
QFile file("in.txt"); if (!file.open(QIODevice::ReadOnly | QIODevice::Text))return; while (!file.atEnd()) {QByteArray line = file.readLine(); process_line(line); }
最后我们通过
file.close()
关闭数据流就好了二、UI设计 这里随便画画就好了,不过可以在文本显示框插入背景图,只需要在组件的
styleSheet
中添加资源即可![基于QT5的文件读取程序的实现](http://img.readke.com/220515/101P4K94-1.jpg)
文章图片
![基于QT5的文件读取程序的实现](http://img.readke.com/220515/101P42206-2.jpg)
文章图片
mainwindow.ui
MainWindow 【基于QT5的文件读取程序的实现】 MainWindow 0 0 300 500false true 文件路径 打开文件 文本内容: background-image: url(:/a/tmp/back.png); background-color: rgba(0, 0, 0, 12); 0 0 300 23
三、代码
3.1 mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#includeQT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr); ~MainWindow(); private:Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
3.2 mainwindow.c
#include "mainwindow.h"#include "ui_mainwindow.h"#include#include #include #include #include #include #include MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this); //使用connec函数,熟悉匿名表达式connect(ui->pushButton,&QPushButton::clicked,[=](){//点击按钮,弹出文件选择对话框//使用对话框,获取打开路径,注意参数一是父类对象 ,参数二是对话窗口名称 参数三是默认打开路径QString fileName = QFileDialog::getOpenFileName(this,tr("Open File"), "C:\\data"); //使路径显示到路径 line edit地方ui->label->setText(fileName); //调试的跟踪打印qDebug()<<"文件路径为:"+fileName; //使用Qfile操作文件QFile file(fileName); //打开文件,注意参数的使用,文件修饰符,文件指针,可以和之前的嵌入式环境编程的知识联系起来,包括 模式操作file.open(QIODevice::ReadOnly); //使用数组数据结构接读取数据QByteArray array; while(!file.atEnd()){array += file.readLine(); //按行读}ui->textEdit->setText(array); //关闭文件数据流file.close(); //编码格式类//QTextCodec * codec = QTextCodec::codecForName("gbk"); QFileInfo info(fileName); qDebug() << "大小:" << info.size() << " 后缀名:" << info.suffix() << " 文件名称:"<
四、效果![]()
文章图片
我们可以看到我们的程序中将我们的日程表打开了,并且在终端打印了这个文件的一些信息,例如:路径、文件名、大小等等
到此这篇关于基于QT5的文件读取程序的实现的文章就介绍到这了,更多相关QT5 文件读取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- SpringBoot|SpringBoot RedisTemplate分布式锁的项目实战
- 使用VUE+SpringBoot+EasyExcel|使用VUE+SpringBoot+EasyExcel 整合导入导出数据的教程详解
- 投稿|居家办公,带火了我的生意
- 最新安装深度win7 64位稳定旗舰版系统的过程
- 网络正常Win7系统页面提示处于脱机状态的处理办法
- app之模拟登陆页面的实现
- @GetMapping和@PostMapping接收参数的格式
- 6个针对NodeJS应用程序的最佳监视工具
- 选择React Native进行移动应用开发的7个理由
- Python数据分析的友好介绍