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中显示

点击另存为键 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI技术对于IT数据安全的革新与挑战

随着ChatGPT的出现&#xff0c;人工智能 (AI) 技术进入了一个新的时代&#xff0c;各行各业的营运方式亦随之而产生了深远影响。AI技术的发展正在重塑安全行业&#xff0c;给企业带来了新的思考和挑战。同时&#xff0c;国际和国家对企业数据使用的管控也越发严格&#xff0c;使…

hypervisor display显卡节点card0生成过程

ditsi 配置 lagvm/LINUX/android/vendor/qcom/proprietary/devicetree/qcom direwolf-g9ph.dts #include "direwolf-vm-la.dtsi" direwolf-vm-la.dtsi #include "display/quin-vm-display-la.dtsi" quin-vm-display-la.dtsi //对应/sys/class/drm/card…

Linear Regression线性回归(一元、多元)

目录 介绍&#xff1a; 一、一元线性回归 1.1数据处理 1.2建模 二、多元线性回归 2.1数据处理 2.2数据分为训练集和测试集 2.3建模 介绍&#xff1a; 线性回归是一种用于预测数值输出的统计分析方法。它通过建立自变量&#xff08;也称为特征变量&#xff09;和因变…

选择正确的自动化测试工具:打造高效测试流程的必备利器!

摘要 自动化测试正在逐步取代部分手动测试&#xff0c;因为它可以节省时间并提高测试质量。特别是在进行回归测试的情况下&#xff0c;自动化可以通过多种方式提高效率。手动进行重复测试是浪费时间和资源。此外&#xff0c;由于重复测试可能会遗漏&#xff0c;因此存在一定的…

PCL点云处理之点云置平(拟合平面绕中心旋转到绝对水平)(二百二十七)

PCL点云处理之点云置平(绕中心旋转到绝对水平)(二百二十七) 一、什么是点云置平二、算法流程三、算法实现一、什么是点云置平 有时候,我们处理的点云平面并非位于水平面,而是位于某个任一三维平面上,而大多数算法又只能在水平面处理,或者水平面的点云处理是相对更简单…

滑动窗口(一)

滑动窗口 什么是滑动窗口算法&#xff1f;通俗的来讲就是 “同向双指针” &#xff0c;当一组数据的规律含有单调性的时候&#xff0c;就可以使用下面这套逻辑来优化暴力解法。 当两个指针同向移动的时候&#xff0c;类似于一个窗口在滑动。使用于在连续序列里找特殊的子串、…

Java基础回顾——面向对象编程

文章目录 面向对象基础方法构造方法默认构造方法多构造方法 方法重载继承多态抽象类接口静态字段和静态方法包作用域内部类 写在最后 https://www.liaoxuefeng.com/wiki/1252599548343744/1255943520012800 面向对象编程Object-Oriented Programming&#xff0c;简称OOP&#…

Windows phpstudy vscode Xdebug调试无效,无法监听,没有什么效果

Windows phpstudy vscode Xdebug调试无效&#xff0c;无法监听&#xff0c;没有什么效果 vscode 正常&#xff0c;能启动&#xff0c;能标记&#xff0c;就是无法监听 打印phpinfo(); Xdebug版本3 打印的信息输入这里&#xff0c;找出对应PHPXdebug的dll文件 Xdebug: Sup…

汽车火花塞行业分析:全球市场需求量约为26.3亿个

在汽车日常保养里,更换火花塞算是比较常见的一种,爱车懂车的车主们都非常清楚火花塞对于汽车的重要性,可以说火花塞直接影响到发动机的运作,决定了汽车能否顺利启程。 火花塞(sparkplug)&#xff0c;俗称火咀&#xff0c;它的作用是把高压导线(火嘴线)送来的脉冲高压电放电&…

运维实践|采集MySQL数据出现many connection errors

文章目录 问题出现问题分析当前环境问题分析 解决方案1 检查调度事件任务是否开启2 开启调度事件任务3 创建一张日志表4 创建函数存储过程5 创建事件定时器6 开启事件调度任务7 检查核实是否创建 总结 问题出现 最近在做OGG结构化数据采集工作&#xff0c;在数据采集过程中&am…

【剪映】点滴剪时光

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

双指针算法(二)

三数之和 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重…