qt实现基本文件操作

先通过ui界面实现基本框架

接下来就要实现每个按键的功能了

我们先来实现新建的的功能,我们右键新建键,可以发现没有转到槽的功能,因此我们要自己写connect来建立关系。

private slots:
    void newActionSlot();

在.h文件中加上槽函数。

 connect(ui->action_N,&QAction::triggered,this,&MainWindow::newActionSlot);

然后再.cpp的构造函数中加上connect函数,&QAction::triggered就是被单击的信号。

建立联系之后我们就可以实现newActionSlot()这个函数。

void MainWindow::newActionSlot()
{
    ui->textEdit->clear();
    this->setWindowTitle("新建文本文档.txt");
}

我们使用了clear清空原本的内容,然后重新给窗口名取别名。这样一来新建键的功能实现了。

接下来实现打开键。

void openActionSlot();

 老样子,在.h文件中加入此函数。

然后再.cpp中建立联系

 connect(ui->action_O,&QAction::triggered,this,&MainWindow::openActionSlot);

实现void openActionSlot()

void MainWindow::openActionSlot()
{
   QString filename= QFileDialog::getOpenFileName(this, "选择一个文件",
                             QCoreApplication::applicationFilePath(),//获取当前路径
                                                    "*.cpp");
    if(filename.isEmpty())
   {
       QMessageBox::warning(this,"警告","请选择一个文件");
   }
    else
    {
        //qDebug()<<filename;//绝对路径
       QFile file(filename);
        file.open(QIODevice::ReadOnly);
       QByteArray ba=file.readAll();
        ui->textEdit->setText(QString(ba));
       file.close();
    }
}

 我们来一步一步解析。

QString filename= QFileDialog::getOpenFileName(this, "选择一个文件",
                             QCoreApplication::applicationFilePath(),//获取当前路径
                                                    "*.cpp");

这一行可以获取选择文件的绝对路径。

if(filename.isEmpty())
   {
       QMessageBox::warning(this,"警告","请选择一个文件");
   }

如果没有选择文件,回弹出窗口警告,加头文件QMessage。

 file.open(QIODevice::ReadOnly);以只读的方式打开文件

接下来我们实现另存为键

 void saveActionSlot();

connect(ui->action_S,&QAction::triggered,this,&MainWindow::saveActionSlot);
void MainWindow::saveActionSlot()
{
    QString filename=QFileDialog::getSaveFileName(this,"选择一个文件",
                      QCoreApplication::applicationFilePath());
    if(filename.isEmpty())
    {
        QMessageBox::warning(this,"警告","请选择一个文件");
    }
    else
    {
        QFile file(filename);
        file.open(QIODevice::WriteOnly);
        // QByteArray ba;
        // ba.append(ui->textEdit->toPlainText());
        file.write(ui->textEdit->toPlainText().toUtf8().data());
        file.close();
    }
}

实现这个函数和上述步骤基本一致。

通过以上操作我们实现了基本功能,让我们一起来看看效果

点击打开键

没有选择文件

打开文件后,成功在textedit中显示

点击另存为键 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PMP项目管理 - 风险管理

系列文章目录 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in…

常见Appium相关问题及解决方案

问题1&#xff1a;adb检测不到设备 解决&#xff1a; 1.检查手机驱动是否安装&#xff08;win10系统不需要&#xff09;&#xff0c;去官网下载手机驱动或者电脑下载手机助手来辅助安装手机驱动&#xff0c;安装完成后卸载手机助手&#xff08;防止接入手机时抢adb端口造成干…

【教3妹学编程-算法题】找到 Alice 和 Bob 可以相遇的建筑

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2…

SpringBoot 源码解析2:启动流程1

SpringBoot 源码解析2&#xff1a;启动流程1 1.启动方式2.SpringBootApplication3.SpringApplication3.1 构造器SpringApplication3.2 SpringApplication#run 3.3 SpringApplication#run 中关键方法3.1 SpringApplication#prepareEnvironment3.2 SpringApplication#prepareCont…

CSS篇之圆角梯形

附上一篇文章&#xff1a;梯形tab按钮-基于clip-path path函数实现 - JSRUN.NET 他这个区别在于&#xff0c;收尾两侧都是直角的&#xff0c;如图 下面这个是圆角&#xff1a; 思路&#xff1a; 代码如下&#xff1a; <template><div class"wrap"><…

什么是Vue?

什么是Vue 什么是Vue&#xff1f;Vue 快速入门常用指令生命周期生命周期介绍生命周期 函数调用情况 什么是Vue&#xff1f; Vue 快速入门 常用指令 生命周期 生命周期介绍 生命周期 函数调用情况

Lit官方入门示例

陈拓 2023/12/17-2023/12/17 1. 简介 在《用Vite构建Lit项目》 https://blog.csdn.net/chentuo2000/article/details/134831884?spm1001.2014.3001.5501 一文中我们介绍了怎样用Vite构建Lit项目。 本文我们介绍不依赖Vite的Lit入门示例。 我的开发环境还是和上文相同。 …

C语言—每日选择题—Day50

一天一天的更新&#xff0c;也是达到50天了&#xff0c;精选的题有250道&#xff0c;博主累计做了不下500道选择题&#xff0c;最喜欢的题型就是指针和数组之间的计算呀&#xff0c;不知道关注我的小伙伴是不是一直在坚持呢&#xff1f;文末有投票&#xff0c;大家可以投票让博…

HarmonyOS应用开发者高级认证考试满分答案(100分)【全网最全-不断更新】【鸿蒙专栏-28】

系列文章&#xff1a; HarmonyOS应用开发者基础认证满分答案&#xff08;100分&#xff09; HarmonyOS应用开发者基础认证【闯关习题 满分答案】 HarmonyOS应用开发者高级认证满分答案&#xff08;100分&#xff09; HarmonyOS云开发基础认证满分答案&#xff08;100分&#xf…

【MyBatis-Plus】常用的插件介绍(乐观锁、逻辑删除、分页)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于MyBatis-Plus的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.为什么要使用MyBatis-Plus中的插…

1. MongoDB快速实战与基本原理

1.MongoDB介绍 1.1 什么是MongoDB MongoDB是一个文档数据库&#xff08;以JSON 为数据模型&#xff09;&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能数据存储解决方案。 文档来自于“JSON Document”&#xff0c;并非我们一般理解的 PDF&#xff0c;…

【Qt图书管理系统】4.系统设计与详细设计

文章目录 核心流程图软件架构设计流程图软件开发类图及功能点 核心流程图 用户登录图书查询图书借阅图书归还账户管理 软件架构设计 流程图 软件开发类图及功能点 Dlg_Login 登录界面 Cell_Main 主窗体 Cell_MyBook 我的书籍 Cell_BookMgr 书籍管理 Cell_RecoredMgr 借阅记录…

cmd发生系统错误 5。的解决方法

我敲[net start mysql]命令时遇到如图报错&#xff0c;下面介绍解决方法&#xff0c;非常简单。 我们只需要更改打开cmd的方式&#xff0c;我之前直接敲WinR组合键&#xff0c;输入cmd命令打开的&#xff0c;不要这样做。我们输入“命令提示符”&#xff0c;然后选择“以管理员…

前后端分离开发

前期 前后端混合开发 后期 前后端分离开发

Windows11环境下配置深度学习环境(Pytorch)

目录 1. 下载安装Miniconda2. 新建Python3.9虚拟环境3. 下载英伟达驱动4. 安装CUDA版Pytorch5. CPU版本pytorch安装 1. 下载安装Miniconda 下载安装包&#xff1a;镜像文件地址 将Miniconda相关路径添加至系统变量的路径中。 打开Anaconda Powershell Prompt&#xff0c;输入…

亚马逊云科技re_Invent 2023产品体验:亚马逊云科技产品应用实践 王炸产品Amazon Q,你的AI助手

本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 意料之中 2023年9月25日&#xff0c;亚马逊宣布与 Anthropic 正式展开战略合作&#x…

联想王传东:AI PC迈入AI Ready 即将开启AI On

“AI PC已经正式迈入AI Ready 阶段&#xff0c;接下来会逐渐进入到AI On阶段。”12月16日&#xff0c;英特尔人工智能创新应用大赛启动仪式在深圳举办。作为独家AI PC合作伙伴&#xff0c;联想集团副总裁、中国区首席市场官王传东代表公司出席仪式并致辞。 王传东认为AI PC的发…

workflow系列教程(4)Parallel并联任务流

往期教程 如果觉得写的可以,请给一个点赞关注支持一下 观看之前请先看,往期的博客教程,否则这篇博客没办法看懂 workFlow c异步网络库编译教程与简介 C异步网络库workflow入门教程(1)HTTP任务 C异步网络库workflow系列教程(2)redis任务 workflow系列教程(3)Series串联任务流…

Web API——Performance属性了解和使用

性能监控一直是前端的一个重点工作&#xff0c;本文介绍在做性能监控时&#xff0c;必须要了解的一个Web API——performance&#xff0c;主要了解它的的属性和使用。 一、window.performance 1、Performance 是一个标准&#xff0c;用于解决开发者在浏览器中获取性能数据的问…

mysql原理--InnoDB的表空间

1.概述 通过前边儿的内容大家知道&#xff0c; 表空间 是一个抽象的概念。 对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为 表名.ibd 的实际文件。可以把表空间想象成被切分为许许…