文章目录

  • 1 文本编辑器实现光标定位的功能

1 文本编辑器实现光标定位的功能

问题:如何计算编辑框中光标的位置?


思路:

  • 文本框对象的内部包含了QTextCursor对象。
  • 通过position()成员函数获取当前光标的字符位置。
  • 根据光标的字符位置计算横纵坐标。
  • 当光标位置发生变化时进行计算。

算法流程描述:

思想:

  1. 通过’\n’字符的个数计算所在行。
  2. 通过最后一个’\n’字符的下标计算所在行。

    关键代码如下:
bool MainWindow::initMainEditor()
{bool ret = true;mainEditor.setParent(this);connect(&mainEditor, SIGNAL(textChanged()), this, SLOT(onTextChanged()));connect(&mainEditor, SIGNAL(copyAvailable(bool)), this, SLOT(onCopyAvailable(bool)));connect(&mainEditor, SIGNAL(redoAvailable(bool)), this, SLOT(onRedoAvailable(bool)));connect(&mainEditor, SIGNAL(undoAvailable(bool)), this, SLOT(onUndoAvailable(bool)));connect(&mainEditor, SIGNAL(cursorPositionChanged()), this, SLOT(onCursorPositionChanged()));setCentralWidget(&mainEditor);return ret;
}void MainWindow::onCursorPositionChanged()
{int pos = mainEditor.textCursor().position(); // 注意,这里的返回的位置从0开始,比如当前有输入框内有字符abc,光标停在a前面返回0,a后面返回1,b后面返回2,c后面返回3QString text = mainEditor.toPlainText();int col = 0;int ln = 0;int flag = -1;for(int i=0; i<pos; i++){if( text[i] == '\n' ){ln++;flag = i;}}flag++;col = pos - flag;statusLbl.setText("Ln: " + QString::number(ln + 1) + "    Col: " + QString::number(col + 1));
}

参考资料:

  1. QT实验分析教程

文本编辑器实现光标定位的功能相关推荐

  1. mysql2005编辑器用法,文本编辑器 - Visual Studio的隐藏功能(2005-2010)?

    文本编辑器 - Visual Studio的隐藏功能(2005-2010)? Visual Studio是如此庞大的产品,即使经过多年的努力,我偶尔偶然发现了一种新的/更好的方式来做我甚至不知道的事情 ...

  2. 文本编辑器中实现自动换行的功能

    文章目录 1 文本编辑器中实现自动换行的功能 1 文本编辑器中实现自动换行的功能 实现思路: 获取当前文本编辑框的换行模式. 将模式进行反转后并进行设置. 更新对应QAction对象的状态. 槽函数的 ...

  3. 文本编辑器实现关于对话框的功能

    文章目录 1 文本编辑器实现关于对话框的功能 1 文本编辑器实现关于对话框的功能 关于对话框: 标准的桌面应用软件都有一个关于对话框. 关于对话框用于标识软件自身的信息: 软件Logo.项目名.版本号 ...

  4. flex html 控制编辑,在富文本编辑器中添加Tab键功能(Flex 3)

    我试图在使用事件keyDown的富文本编辑器中添加Tab键功能.只需要清楚,在标签键上,我需要将控件保留在前面带有'\ t'空格的同一个文本框中,而不是跳到下一个对象.我尝试的下面的代码完全适用于te ...

  5. 富文本编辑器 vue-quill-editor 实现 mention 提醒功能

    业务需要要实现一个富文本编辑器,而且同时还要实现提醒@的功能. 组件官网地址:1. https://www.npmjs.com/package/@yixink/quill-mention 2. htt ...

  6. edui 富文本编辑_改造百度UMeditor(UEditor-min)富文本编辑器的图片上传功能

    最近项目需要新增一个发布文章的模块,用的是百度的Ueditor富文本编辑器. 公司用的是阿里云的图片服务器,需要直接把文章中图片上传到服务器上,但是这个编辑器的上传图片是直接上传到Tomcat的根目录 ...

  7. 只要100行代码,实现文本编辑器中的草稿箱功能

    本文节选自<设计模式就该这样学> 1 使用备忘录模式实现草稿箱功能 大家都用过网页中的富文本编辑器,编辑器通常都会附带草稿箱.撤销等操作.下面用一段代码来实现一个这样的功能.假设,我们在G ...

  8. 统信UOS下Gedit文本编辑器的安装方法及功能介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 前言 一.Gedit是什么? 二.安装方法 1.在线安装 2.离线安装 三.功能介绍 1.快捷键介绍 2.菜单> ...

  9. 淘淘商城第三天—完成商品添加功能 商品类目选择 图片上传 图片服务器搭建 kindEditor富文本编辑器的使用 商品添加功能

    1.实现商品类目选择功能 1.1需求 在商品添加页面,点击"选择类目"显示商品类目列表: 请求初始化树形控件的url:/item/cat/list 1.2 EasyUI tree数 ...

最新文章

  1. python爬虫自学路线_python 爬虫学习路线:从入门到进阶
  2. J2ME手机游戏引擎程序结构简述
  3. 搜索引擎CACHE策略研究
  4. 一汽奔腾b7o价位_全新奔腾B70正式上市,前脸被吐槽酷似某豪华品牌
  5. 纯CSS实现三列布局(两边固定,中间自适应)
  6. 问道linux一键端,问道手游源码打包一键端搭建_附教程
  7. 转载 Ubuntu系统安装Java JDK和HDFView
  8. python下使用gdal空间插值
  9. 哪种pdf编辑器更方便使用
  10. 微信小程序tab页面切换
  11. 李永辉:IBM大数据产品及实践路线图
  12. Grammar API
  13. 草图实时生成动漫角色!太秀了
  14. html里alert怎么设置确定和取消,自定义alert 确定、取消功能(示例代码)
  15. ALSA学习笔记 (1) ALSA 简介
  16. 用mysql编资产负债表_资产负债表如何编制!
  17. jquery.validate.min.js 插件
  18. 【Python代码基础(符号篇1)】
  19. 努力是为了不辜负自己
  20. Spring Boot JPA实体类idea自动生成 其一-https://www.jianshu.com/p/44bb7e25f5c7

热门文章

  1. 第6章-一阶多智体系统一致性-->6.1 连续时间多智能体系统一致性
  2. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第8章-高阶非线性多智能体分布式自适应鲁棒控制
  3. LaTex 插入数学公式
  4. Ardino基础教程 20_红外遥控
  5. 【移动通信】WIFI6 技术参数
  6. 【雷达书籍分享】RADAR SYSTEMS ANALYSIS AND DESIGN USING MATLAB
  7. ScrollView child layout ([alignItems]) 错误
  8. 配置Java_Home,临时环境变量信息
  9. 首个64层3D NAND闪存技术出现
  10. zabbix如何监控WEB应用性能