尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Qt — Qt 文件

发布时间:2026/9/29 21:31:05

资讯中心
01
ARTICLE

Qt — Qt 文件

Qt — Qt 文件
目录1. Qt 文件概述2. 输入输出设备类3. QFile 类的使用3.1 打开 open3.2 读 read / readLine / readAll3.3 写 wirte3.4 关闭 close3.5 QFile 类的基本用法4. 文件和目录信息1. Qt 文件概述⽂件操作是应⽤程序必不可少的部分。Qt 作为⼀个通⽤开发库提供了跨平台的⽂件操作能⼒。 Qt提供了很多关于⽂件的类通过这些类能够对⽂件系统进⾏操作如⽂件读写、⽂件信息获取、文件复制或重命名等。2. 输入输出设备类在 Qt 中⽂件读写的类为 QFile 。QFile 的⽗类为 QFileDevice QFileDevice 提供了⽂件交互操作的底层功能。 QFileDevice 的⽗类是 QIODeviceQIODevice 的⽗类为 QObject 。QIODevice 是 Qt 中所有输⼊输出设备input/output device简称 I/O 设备的基础类I/O 设备就是能进⾏数据输⼊和输出的设备例如⽂件是⼀种 I/O 设备⽹络通信中的 socket 是 I/O 设备 串⼝、蓝⽛等通信接⼝也是 I/O 设备所以它们也是从 QIODevice 继承来的。Qt 中主要的⼀些 I/O 设备类的继承关系如下图所示3. QFile 类的使用用 QFile 之前先使用构造函数完成文件对象的构造需要提供文件路径绝对路径和相对路径都可以3.1 打开 open使用上面的两种方法还需要C语言的API比较麻烦构造函数中指定了路径之后此时直接通过这个版本的 open 打开即可。OpenMode mode读方式 / 写方式 / 追加写 方式打开。3.2 读 read / readLine / readAllQByteArray 是可以很方便的转成 QString 的。3.3 写 wirte3.4 关闭 close关闭本质上是要释放文件描述符表中的表项文件描述符表存在上限。如果一直打开不关闭的话就可能会使文件描述符表被占满后续再尝试打开就打开不了了。3.5 QFile 类的基本用法// mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QMainWindow #include QPlainTextEdit QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent nullptr); ~MainWindow(); void handleAction1(); void handleAction2(); private: Ui::MainWindow *ui; QPlainTextEdit* edit; }; #endif // MAINWINDOW_H// mainwindow.cpp #include mainwindow.h #include ui_mainwindow.h #include QFileDialog MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui-setupUi(this); this-setWindowTitle(简单的记事本); // 获取到菜单栏 QMenuBar* menuBar this-menuBar(); // 添加菜单 QMenu* menu new QMenu(文件); menuBar-addMenu(menu); // 添加菜单项 QAction* action1 new QAction(打开); QAction* action2 new QAction(保存); menu-addAction(action1); menu-addAction(action2); // 指定一个输入框 edit new QPlainTextEdit(); QFont font; font.setPixelSize(24); edit-setFont(font); this-setCentralWidget(edit); // 连接 QAction 的信号槽 connect(action1, QAction::triggered, this,MainWindow::handleAction1); connect(action2, QAction::triggered, this,MainWindow::handleAction2); } MainWindow::~MainWindow() { delete ui; } void MainWindow::handleAction1() { // 1. 先弹出 “打开文件” 对话框让用户选择打开哪个文件 QString path QFileDialog::getOpenFileName(this); // 2. 把文件名显示到状态中 QStatusBar* statusBar this-statusBar(); statusBar-showMessage(path); // 3. 根据用户选择的路径构造一个 QFile 对象并打开文件 QFile file(path); bool ret file.open(QIODevice::ReadOnly); if(!ret){ // 打开文件失败 statusBar-showMessage(path 打开失败); } // 4. 读取文件 QString text file.readAll(); // 需要确保打开的文件是一个文本文件才可以如果是二进制文件交给 QString 就不合适了 // 二进制文件里面的内容存啥都行没有限制图片可执行程序视频音频…… // 文本文件里面的内容必须是合法字符遵守utf8gbk等编码方式 // 5.关闭文件!!! file.close(); // 6. 读到的内容设置到输入框中 edit-setPlainText(text); } void MainWindow::handleAction2() { // 1. 先弹出保存文件对话框 QString path QFileDialog::getSaveFileName(); // 2. 在状态栏中显示这个文件名 QStatusBar* statusBar this-statusBar(); statusBar-showMessage(path); // 3. 根据用户选择的路径构造一个 QFile 对象并打开文件 QFile file(path); bool ret file.open(QIODevice::WriteOnly); if(!ret){ statusBar-showMessage(path 打开失败!); return; } // 4. 写文件 const QString text edit-toPlainText(); file.write(text.toUtf8()); // 5. 关闭文件 file.close(); }运行保存文件操作确实在对应的路径下存在该文件打开文件操作4. 文件和目录信息QFileInfo 是 Qt 提供的⼀个⽤于获取⽂件和⽬录信息的类如获取⽂件名、⽂件大小、⽂件修改⽇期等。QFileInfo类中提供了很多的⽅法常⽤的有isDir() 检查该⽂件是否是⽬录isExecutable() 检查该⽂件是否是可执⾏⽂件fileName() 获得⽂件名completeBaseName() 获取完整的⽂件名suffix() 获取⽂件后缀名completeSuffix() 获取完整的⽂件后缀size() 获取⽂件大小isFile() 判断是否为⽂件fileTime() 获取⽂件创建时间、修改时间、最近访问时间等运行
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。