文本编辑器实现光标定位的功能
文章目录
- 1 文本编辑器实现光标定位的功能
1 文本编辑器实现光标定位的功能
问题:如何计算编辑框中光标的位置?
思路:
- 文本框对象的内部包含了QTextCursor对象。
- 通过position()成员函数获取当前光标的字符位置。
- 根据光标的字符位置计算横纵坐标。
- 当光标位置发生变化时进行计算。
算法流程描述:
思想:
- 通过’\n’字符的个数计算所在行。
- 通过最后一个’\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));
}
参考资料:
- QT实验分析教程
文本编辑器实现光标定位的功能相关推荐
- mysql2005编辑器用法,文本编辑器 - Visual Studio的隐藏功能(2005-2010)?
文本编辑器 - Visual Studio的隐藏功能(2005-2010)? Visual Studio是如此庞大的产品,即使经过多年的努力,我偶尔偶然发现了一种新的/更好的方式来做我甚至不知道的事情 ...
- 文本编辑器中实现自动换行的功能
文章目录 1 文本编辑器中实现自动换行的功能 1 文本编辑器中实现自动换行的功能 实现思路: 获取当前文本编辑框的换行模式. 将模式进行反转后并进行设置. 更新对应QAction对象的状态. 槽函数的 ...
- 文本编辑器实现关于对话框的功能
文章目录 1 文本编辑器实现关于对话框的功能 1 文本编辑器实现关于对话框的功能 关于对话框: 标准的桌面应用软件都有一个关于对话框. 关于对话框用于标识软件自身的信息: 软件Logo.项目名.版本号 ...
- flex html 控制编辑,在富文本编辑器中添加Tab键功能(Flex 3)
我试图在使用事件keyDown的富文本编辑器中添加Tab键功能.只需要清楚,在标签键上,我需要将控件保留在前面带有'\ t'空格的同一个文本框中,而不是跳到下一个对象.我尝试的下面的代码完全适用于te ...
- 富文本编辑器 vue-quill-editor 实现 mention 提醒功能
业务需要要实现一个富文本编辑器,而且同时还要实现提醒@的功能. 组件官网地址:1. https://www.npmjs.com/package/@yixink/quill-mention 2. htt ...
- edui 富文本编辑_改造百度UMeditor(UEditor-min)富文本编辑器的图片上传功能
最近项目需要新增一个发布文章的模块,用的是百度的Ueditor富文本编辑器. 公司用的是阿里云的图片服务器,需要直接把文章中图片上传到服务器上,但是这个编辑器的上传图片是直接上传到Tomcat的根目录 ...
- 只要100行代码,实现文本编辑器中的草稿箱功能
本文节选自<设计模式就该这样学> 1 使用备忘录模式实现草稿箱功能 大家都用过网页中的富文本编辑器,编辑器通常都会附带草稿箱.撤销等操作.下面用一段代码来实现一个这样的功能.假设,我们在G ...
- 统信UOS下Gedit文本编辑器的安装方法及功能介绍
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 前言 一.Gedit是什么? 二.安装方法 1.在线安装 2.离线安装 三.功能介绍 1.快捷键介绍 2.菜单> ...
- 淘淘商城第三天—完成商品添加功能 商品类目选择 图片上传 图片服务器搭建 kindEditor富文本编辑器的使用 商品添加功能
1.实现商品类目选择功能 1.1需求 在商品添加页面,点击"选择类目"显示商品类目列表: 请求初始化树形控件的url:/item/cat/list 1.2 EasyUI tree数 ...
最新文章
- python爬虫自学路线_python 爬虫学习路线:从入门到进阶
- J2ME手机游戏引擎程序结构简述
- 搜索引擎CACHE策略研究
- 一汽奔腾b7o价位_全新奔腾B70正式上市,前脸被吐槽酷似某豪华品牌
- 纯CSS实现三列布局(两边固定,中间自适应)
- 问道linux一键端,问道手游源码打包一键端搭建_附教程
- 转载 Ubuntu系统安装Java JDK和HDFView
- python下使用gdal空间插值
- 哪种pdf编辑器更方便使用
- 微信小程序tab页面切换
- 李永辉:IBM大数据产品及实践路线图
- Grammar API
- 草图实时生成动漫角色!太秀了
- html里alert怎么设置确定和取消,自定义alert 确定、取消功能(示例代码)
- ALSA学习笔记 (1) ALSA 简介
- 用mysql编资产负债表_资产负债表如何编制!
- jquery.validate.min.js 插件
- 【Python代码基础(符号篇1)】
- 努力是为了不辜负自己
- Spring Boot JPA实体类idea自动生成 其一-https://www.jianshu.com/p/44bb7e25f5c7
热门文章
- 第6章-一阶多智体系统一致性-->6.1 连续时间多智能体系统一致性
- 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第8章-高阶非线性多智能体分布式自适应鲁棒控制
- LaTex 插入数学公式
- Ardino基础教程 20_红外遥控
- 【移动通信】WIFI6 技术参数
- 【雷达书籍分享】RADAR SYSTEMS ANALYSIS AND DESIGN USING MATLAB
- ScrollView child layout ([alignItems]) 错误
- 配置Java_Home,临时环境变量信息
- 首个64层3D NAND闪存技术出现
- zabbix如何监控WEB应用性能