QT实现文本的读写

news2024/11/16 3:46:53

使用QT读写文件

来,在程序中文件的读写是非常重要的,毕竟我们在大多数时候都是要访问文本文件的,那么今天就来学习一下怎么使用QT来读写文件。

1.写界面

直接在ui界面中编辑即可

布局小技巧我们先选择两个按钮,然后水平布局,然后将textedit拖进来,在右上角对象查看器中选择Widget对象后,点击垂直布局即可!!!

2.流程讲述

我们如果要打开文件我们有四个步骤

1.找到文件

我用文心一言给大家详细注释了一下…^-^

// 引入Qt的文件对话框和文件操作相关的头文件  
#include <QFileDialog>  
#include <QFile>  
#include <QDebug>  
  
// 假设这是某个类的一个成员函数,其中file是一个QFile对象的成员变量  
// 或者,如果这段代码不在成员函数内部,那么file需要是一个局部变量或者通过其他方式获得  
  
// 使用QFileDialog的静态函数getOpenFileName来弹出一个文件选择对话框  
// this指针表示这个对话框的父窗口(在Qt中,窗口和对话框通常有父子关系,以便管理它们的显示和销毁)  
// "选择文件"是对话框的标题  
// ""是初始目录,留空表示使用当前目录  
// 函数返回用户选择的文件名(包括路径),如果用户取消则返回一个空QString  
QString FileName = QFileDialog::getOpenFileName(this,"选择文件","");  
  
// 检查是否成功选择了文件(即FileName不是空字符串)  
if (!FileName.isEmpty()) {  
    // 使用用户选择的文件名来设置QFile对象的文件名  
    file.setFileName(FileName);  
  
    // 尝试以读写模式打开文件  
    // QIODevice::ReadWrite标志表示同时允许读写操作,但请注意,并非所有文件系统都支持同时读写  
    // 如果文件不存在,某些文件系统(如Windows)可能允许你以ReadWrite模式打开文件进行写入  
    if(!file.open(QIODevice::ReadWrite)){  
        // 如果文件打开失败,则输出错误信息  
        qDebug()<<"打开文件失败";  
  
        // 这里可以添加额外的错误处理代码,比如通知用户或尝试其他操作  
  
        // 记住,在出错后最好关闭文件(如果之前尝试打开过),但在这个例子中,由于文件没有成功打开,  
        // 所以不需要显式调用file.close()。不过,如果在其他地方文件成功打开,但在后续操作中出错,  
        // 那么确保在出错后关闭文件是个好习惯。  
    }  
    // 如果文件成功打开,接下来的代码可以在这里处理文件  
    // ...  
  
    // 在处理完文件后,不要忘记关闭文件  
    // file.close();  
} else {  
    // 如果用户没有选择文件(即点击了取消),可以在这里处理  
    qDebug() << "没有选择文件";  
}  
  

 

2.打开文件

这是打开文件按钮的转到槽的信号函数,

void Widget::on_pushButton_2_clicked()
{
    QString FileName = QFileDialog::getOpenFileName(this,"选择文件","");
    file.setFileName(FileName);
    if(!file.open(QIODevice::ReadWrite)){
        qDebug()<<"打开文件失败";
    }
    ui->textEdit->setPlainText(file.readAll());
    file.close();
}

 

3.访问文件

 file.write(ui->textEdit->toPlainText().toUtf8());//作用:将textEdit中显示的文本写回到这个文件中

4.关闭文件

关闭按钮的信号就是写回,并将textEdit清空

void Widget::on_pushButton_clicked()
{
    if(file.fileName().isNull()){
        return;
    }
    if(!file.open(QIODevice::ReadWrite)){
        qDebug()<<"错误";
        return;
    }

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

注意:使用之前要在 widget.h的文件中应用QFile的头文件,并在下面定义QFile file。

我还是写出来吧:
 

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include"QFile"/这里

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_pushButton_2_clicked();

    void on_pushButton_clicked();

private:
    Ui::Widget *ui;
    QFile file;/这里
};
#endif // WIDGET_H

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS18 beta版本怎么回退至iOS17正式版本?

截止目前&#xff0c;苹果最近的iOS18的beta测试版本已经发了8版了&#xff0c;有许多朋友们都已升级提前尝鲜了&#xff0c;升级体验后许多果粉朋友们觉得有许多功能还是不够稳定&#xff0c;有些许bug&#xff0c;就想要降级&#xff0c;回退到iOS17的正式版&#xff0c;但又…

deep-live-cam实时换中文整合包下载,双击exe直接运行

windows环境整合包下载地址&#xff1a; 点击下载 直接解压&#xff0c;双击启动.exe即可使用 硬件要求&#xff1a;有英伟达显卡&#xff0c;且要支持CUDA 硬件不符合要求也不用急&#xff0c;软件也有对应mac版本和windows非N卡版本&#xff0c;我还没做成整合包&#xff0c;…

2. GIS数据工程师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

沐风老师3DMax地形拟合插件使用方法详解

3DMax地形拟合插件使用教程 3DMax地形拟合插件&#xff0c;只需单击几下鼠标&#xff0c;即可将地形表面与道路对齐。它很容易使用。 &#xff08;注意&#xff1a;如果不仔细阅读&#xff0c;会误认为是这是一个道路拟合&#xff08;投影&#xff09;到地形的插件&#xff0c…

HarmonyOS开发实战( Beta5版)高负载组件的渲染实践规范

简介 在应用开发中&#xff0c;有的页面需要在列表中加载大量的数据&#xff0c;就会导致组件数量较多或者嵌套层级较深&#xff0c;从而引起组件负载加重&#xff0c;绘制耗时增长。虽然可以通过组件复用避免组件重复创建&#xff0c;但是如果每个列表项中包含的组件较多&…

C/C++:函数指针

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 引言函数指针的概念函数指针的实现C语言实现C实现 函数指针的应用 引言 我们之前学过各种各样指针&#xff0c;今天我们来讨论一下函数指针 我们先分析C和C不同定义函数指针的方式&#xff0c;然后进…

uniapp去除顶部标题栏

相信很多同学和我一样&#xff0c;刚学uniapp的时候想去除自带的这个标题栏不知道如何去除&#x1f92a; 其实很简单&#xff0c;只需两个步骤即可彻底除掉&#xff0c;首先找到项目文件夹下的pages.json路由文件点开&#xff0c;在这个文件里可以看到你创建的所有页面&#x…

git修改提交名字

大家在使用git的时候&#xff0c;有的时候可能不是使用自己的账号&#xff0c;或者说账号的信息不符合自己的预期&#xff0c;具体表现在什么地方呢&#xff1f;在提交代码的时候&#xff0c;名字不是自己的&#xff0c;或者是名字不是自己想要的。 下面就是如何查看和修改。 …

视频智能分析平台LntonAIServer视频质量诊断功能花屏、抖动、遮挡等检测

LntonAIServer新增了视频质量诊断功能&#xff0c;该功能专注于提升视频监控系统的稳定性和可用性&#xff0c;主要通过自动化检测来识别视频流中常见的质量问题&#xff0c;比如花屏、抖动、遮挡等问题。这些问题是影响视频监控效果的主要因素之一&#xff0c;而自动化的检测能…

K8S介绍及Kubeadm方式安装K8S(前期工作)

1.K8S介绍 1.Kubernetes简介 Kubernetes 缩写&#xff1a;K8S&#xff0c;k 和 s 之间有八个字符&#xff0c;所以因此得名。 Kubernetes 由 google 的 Brog 系统作为原型&#xff0c;后经 Go 语言延用 Brog 的思路重写&#xff0c;并捐献给 CNCF 基金会开源。 Kubernetes …

ts函数的参数加一个_是什么意思

先说一下总结&#xff0c;在TypeScript&#xff08;TS&#xff09;和Vue 3项目中&#xff0c;给函数的参数加一个下划线&#xff08;_&#xff09;前缀通常是一种约定或习惯&#xff0c;用来表示该参数在当前函数体内是故意未使用的&#xff0c;需要注意的是&#xff0c;这种做…

电脑开机出现no operation system found错误原因分析及解决方法

最近有网友问我电脑一启动提示&#xff1a;no operation system found&#xff0c;这个提示意思是未找到操作系统。并且出现bios能认别硬盘&#xff0c;快捷启动时找不到硬盘&#xff0c;出现该提示的原因有很多&#xff0c;下面我们来详细分析一下开机出现no operation system…

我的世界桃花源官网源码 游戏官网

我的世界桃花源官网源码 游戏官网 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89714345 更多资源下载&#xff1a;关注我。

【python因果推断库6】使用 pymc 模型的工具变量建模 (IV)1

目录 使用 pymc 模型的工具变量建模 (IV) 使用 pymc 模型的工具变量建模 (IV) 这份笔记展示了一个使用工具变量模型&#xff08;Instrumental Variable, IV&#xff09;的例子。我们将会遵循 Acemoglu, Johnson 和 Robinson (2001) 的一个案例研究&#xff0c;该研究尝试解开…

MemLong: 长文本的新记忆大师,可将上下文长度从4k提升到80k!

这篇文章介绍了一个名为MemLong的模型&#xff0c;它通过使用外部检索器来增强长文本建模的能力。MemLong结合了一个不可微的检索-记忆模块和一个部分可训练的解码器-仅语言模型&#xff0c;并引入了一种细粒度、可控的检索注意力机制&#xff0c;利用语义级别的相关块。在多个…

SpringBoot后端快速搭建

SpringBoot 开发环境构建 首先创建一个maven项目 在pom.xml文件中添加以下依赖 <!-- 依赖的父级工程 --> < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > &l…

本地Gitblit使用

首先创建一个本地的gitblit的服务&#xff0c;创建流程如下&#xff1a; 【GitBlit】Windows搭建Git服务器详细教程_搭建gitblit服务-CSDN博客 GitBlit的使用教程-CSDN博客 创建好一个仓库后&#xff0c;分配好用户权限&#xff0c;再将项目拉下来&#xff0c;这里是再visua…

第二证券:什么是券商理财,券商理财有风险吗?

券商理财是指证券公司发行的理财产品&#xff0c;证券公司简称为券商&#xff0c;证券公司集结出资者资产主张建立的资产处理升值类产品便是券商理财产品。 券商理财产品中主要有质押式报价回购事务、收益凭证、券商资产处理计划三种。 1、质押式报价回购事务 是证券公司将契…

云计算和传统IT相比,有哪些优势?

云计算相比于传统的IT基础设施&#xff0c;具有以下一些显著的优势&#xff1a; 成本效益&#xff1a; 云计算通常采用按需付费模式&#xff0c;用户只需为实际使用的资源支付费用&#xff0c;避免了高昂的前期硬件投资和维护成本。 弹性计费方式使得企业可以根据业务需求灵活调…

如何做好API安全

在数字化时代&#xff0c;API&#xff08;应用程序接口&#xff09;已成为企业间、应用程序间乃至整个数字生态系统中数据交换与功能集成的核心&#xff0c;可 帮助跨多个设备互连多个应用程序或软件系统&#xff0c;定义它们可以发出的调用或请求的种类、调用的方式、应使用的…