当前位置: 首页 > news >正文

学习C++、QT---27(QT中实现记事本项目实现行列显示、优化保存文件的功能的讲解)

每日一言

        人生没有白走的路,每一步都算数,每一滴汗水都值得。

现在我们来实现一下记事本的行列显示吧

就是这个功能,那么我们怎么实现呢,那么我们肯定要和我们的光标有关系的

这个是我们的槽函数

那么这个功能呢,也是根据我们的光标的变化而变化的,那么也是需要使用到这个testCursor这个函数的,因为需要对应的光标信息,那么我们就将光标的行和列打印出来,分别是columnNumber()列、和blockNumber()行,那么我们怎么找到这个函数的呢,我们去帮助文档的QTextCursor里面找到了这两个

分别是这两个我们在QTextCursor这个类中找到的方法

那么我们后面会发现我们最后要将文字写到我们的label里面的啊

我们将文字写到lable上的话是调用的这个方法

ui->labelcolrow->setText(lable);

那么这个方法的参数是QString啊,那么我们如果是之前的样子设置的话,是返回int类型的,所以我们要进行转换

QString lie  =QString::number(cursor.columnNumber());

QString hang =QString::number(cursor.blockNumber()+1);

要将int类型转换成QString类型,QString::number这个就是int转换成QString类型的方法了

随后我们肯定是要行和列都在一起啊,所幸我们就直接将字符串拼接起来

 QString lable = "L:"+lie+"  "+"H:"+hang+"  ";

那么这个lable就符合我们的Qstring类型了,所以再将这个lable传入到setTest参数里面

这样就可以实现了,只要我们的光标移动了,那么信号发送后,槽函数就会执行一遍,将最新的行列信息传到我们的lable

我们就这样实现了这个功能了

优化保存文件的功能

我们会发现我在保存的时候,我为什么会弹出一个文件选择框,那么实际上我在打开文件的时候,是不需要弹QTextDialog的啊,而是直接保存,只有在没有打开文件的时候才弹QTextDialog,让我去命名保存,好的那么我们来修改一下代码

这个就是我们修改后的代码

我们的逻辑是这样的,当文件没有打开的时候,那么我们就弹窗,然后反正打开和没有打开都需要进行读取文件信息,那么我们就将文件的读取放在if的外面,记住我们要将seek重置为0,因为如果是打开状态下,open的时候已经将文件读到最后了,所以光标在最尾巴,所以如果我们不加seek(0)重置光标的话,就会变成字符串拼接了,就会选择这个你想要保存的文本与上一次你打开之后的那个文本进行拼接,因为当时光标是在上一次打开的那个文件的最尾巴(通过open的时候读文件导致的),所以我们为了避免这个情况,我们需要将seek重置为0,这样,就会只显示我们当前的这个想要保存的文本了

http://www.dtcms.com/a/284687.html

相关文章:

  • 三、CV_VGGnet
  • 栈和队列的实现,咕咕咕
  • CTF之栅栏密码的传统型、W型与偏移量
  • ota之.加密算法,mcu加密方式
  • 开源 python 应用 开发(八)图片比对
  • Android wifi简单白名单实现逻辑
  • 20250717在荣品的PRO-RK3566开发板的Android13系统下解决点屏出现问题unsupport command data type: 217
  • 通俗的解释一下以太网中的端口号
  • 流式数据处理实战:用状态机 + scan 优雅过滤 AI 响应中的 `<think>` 标签
  • 深入理解CSS定位:绝对定位的包含块机制
  • 退休时间计算器,精准预测养老时间
  • 项目实战(18)-POE分离器
  • Spring底层原理(一)核心原理
  • RCU机制及常见锁的理解
  • 深入理解Java中的Map.Entry接口
  • 【数据结构】单链表的实现
  • python(one day)——春水碧于天,画船听雨眠。
  • Python 网络爬虫 —— requests 库和网页源代码
  • 网络爬虫的介绍
  • Kafka 配置参数详解:ZooKeeper 模式与 KRaft 模式对比
  • 【Android】Span的使用
  • 深入了解linux系统—— 信号的捕捉
  • 卷积神经网络--网络性能提升
  • 如何成为高级前端开发者:系统化成长路径。
  • 初识 二叉树
  • BI Agent vs. 传统BI工具:衡石科技视角下的效率与智能跃迁
  • 亚远景科技助力长城汽车,开启智能研发新征程
  • AI产品经理面试宝典第34天:破解人机社交关系面试题与答法
  • 一台显示器上如何快速切换两台电脑主机?
  • 【vue-2】Vue 3 中的 v-on 指令:全面指南与最佳实践