2023-12-05 Qt学习总结9


点击 <C 语言编程核心突破> 快速C语言入门



前言

要解决问题: 学习qt最核心知识, 多一个都不学.


二十五 QFile文件操作

QFile是Qt提供的文件读写类,支持对文件进行读写、复制、重命名、删除等操作。常用C++函数如下:

  1. 打开文件:QFile file(fileName)

  2. 打开文件模式:

    • 只读模式:file.open(QIODevice::ReadOnly)

    • 只写模式:file.open(QIODevice::WriteOnly)

    • 读写模式:file.open(QIODevice::ReadWrite)

    • 追加模式:file.open(QIODevice::Append)

  3. 写入文件:file.write("Hello World!")

  4. 读取文件内容:

    • 读取所有数据:file.readAll()

    • 读取一行数据:file.readLine()

    • 读取指定字节数的数据:file.read(numBytes)

  5. 获取文件大小:file.size()

  6. 检查文件是否打开:file.isOpen()

  7. 关闭文件:file.close()

  8. 拷贝文件:QFile::copy(sourceFileName, targetFileName)

  9. 重命名文件:QFile::rename(oldName, newName)

  10. 删除文件:QFile::remove(fileName)

示例:

建立一个界面, 利用信号和槽机制, 打开一个文件, 并将文件内容显示出来
在这里插入图片描述
编辑内容, 然后保存.
在这里插入图片描述
代码:

Widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QFile>
#include <QMessageBox>
#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui
{
   
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
   
    Q_OBJECT

  public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

  private slots:
    void on_openButton_clicked();

    void on_saveButton_clicked();

  private:
    Ui::Widget *ui;
};
#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);
}

Widget::~Widget()
{
   
    delete ui;
}

void Widget::on_openButton_clicked()
{
   
    QFile file(ui->fileLineEdit->text());
    if (file.open(QIODevice::ReadOnly))
    {
   
        QMessageBox::information(this, "提示", "打开文件");
    }
    else
    {
   
        QMessageBox::information(this, "提示", "未打开文件");
    }

    ui->textEdit->setText(QString(file.readAll()));

    file.close();
}

void Widget::on_saveButton_clicked()
{
   
    QFile file(ui->fileLineEdit->text());
    if (file.open(QIODevice::WriteOnly | QIODevice::Truncate))
    {
   
        QMessageBox::information(this, "提示", "打开文件");
    }
    else
    {
   
        QMessageBox::information(this, "提示", "未打开文件");
    }

    file.write(ui->textEdit->toPlainText().toUtf8());

    file.close();
}


总结


点击 <C 语言编程核心突破> 快速C语言入门


相关推荐

  1. 技术周总结2024.06.1006.16

    2023-12-12 23:28:01       30 阅读
  2. 周末总结(2024/05/05)

    2023-12-12 23:28:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 23:28:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 23:28:01       97 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 23:28:01       78 阅读
  4. Python语言-面向对象

    2023-12-12 23:28:01       88 阅读

热门阅读

  1. 跨站脚本攻击(xss)

    2023-12-12 23:28:01       62 阅读
  2. Python迭代器与生成器研究记录

    2023-12-12 23:28:01       52 阅读
  3. Optional

    2023-12-12 23:28:01       53 阅读
  4. IT运维产业在大数据驱动变革下的应用建议

    2023-12-12 23:28:01       69 阅读
  5. HR如何筛选简历?

    2023-12-12 23:28:01       54 阅读
  6. SQL命令---修改字段名

    2023-12-12 23:28:01       56 阅读
  7. 数据冗余(data redundant)现象介绍

    2023-12-12 23:28:01       53 阅读