qt QTextCursor详解

ops/2024/11/8 12:39:13/
1、概述

QTextCursor是Qt框架中用于在QTextDocument或QTextEdit中编辑和导航文本的类。它提供了对文本选择和编辑操作的低级控制,允许插入、删除、修改文本以及改变文本的格式。QTextCursor可以看作是一个在文本中移动的插入点或选择区域,通过它可以执行各种文本编辑任务。

2、重要方法

QTextCursor类的重要方法包括但不限于:

  • insertText(const QString &text): 在光标当前位置插入文本。
  • removeSelectedText(): 删除当前选择区域的文本。
  • selectedText(): 返回当前选择区域的文本。
  • setPosition(int position, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor): 设置光标的位置。
  • movePosition(int position, QTextCursor::MoveMode mode, int n = 1): 移动光标到指定位置。
  • select(QTextCursor::SelectionType selection): 根据选择类型(如单词、行、块)选择文本。
  • mergeBlockFormat(const QTextBlockFormat &format): 合并当前块或选择区域的块格式。
  • mergeCharFormat(const QTextCharFormat &format): 合并当前字符或选择区域的字符格式。
  • block(): 返回光标当前所在的文本块。
  • charFormat(): 返回光标当前位置或选择区域的字符格式。
  • blockFormat(): 返回光标当前所在的文本块的块格式。

3、光标移动操作

QTextcursor::Move0peration 枚举定义了光标移动操作:

  • MoveAnchor:将锚点移动到光标位置。
  • KeepAnchor:保留锚点,并扩展选择到光标位置。

4、光标移动模式

QTextCursor::MoveMode 枚举定义了光标移动式:

  • MoveAnchor:移动锚点
  • KeepAnchor:保持锚点位置。
#include <QApplication>
#include <QTextEdit>
#include <QTextCursor>
#include <QTextCharFormat>
#include <QKeyEvent>int main(int argc, char *argv[]) {QApplication app(argc, argv);QTextEdit textEdit;textEdit.setWindowTitle("QTextCursor Example");// 插入初始文本QTextCursor cursor(textEdit.textCursor());cursor.insertText("Hello, QTextCursor!\nThis is a demo.\n");// 选择文本并改变格式cursor.setPosition(0); // 设置光标到文档开头cursor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor); // 选择整个文档QTextCharFormat format;format.setForeground(Qt::blue); // 设置前景色为蓝色format.setFontWeight(QFont::Bold); // 设置字体为粗体cursor.mergeCharFormat(format); // 应用格式到选择区域textEdit.setTextCursor(cursor); // 更新QTextEdit的文本光标textEdit.show();return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           


http://www.ppmy.cn/ops/131928.html

相关文章

微信小程序uniapp基于Android的流浪动物管理系统 70c3u

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 以往流浪猫狗的救助网站相关信息的管理&#xff0c;都是工作人员手工统计。这种方式不但时效性低&#xff0c;而且需要查…

G1垃圾回收器日志详解

新生代收集 GC pause (G1 Evacuation Pause) (young) -- gc前堆内存分布情况 {Heap before GC invocations1592 (full 4):garbage-first heap total 6291456K, used 5011297K [0x0000000640000000, 0x0000000640206000, 0x00000007c0000000) --表示使用了G1,堆大小&…

25国考照片处理器使用流程图解❗

1、打开“国家公务员局”网站&#xff0c;进入2025公务员专题&#xff0c;找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”&#xff0c;再找到“照片处理工具”双击。 6、双击后会进入这样的界面&#xff0c;点击&…

oracle 9i 使用dbms_obfuscation_toolkit加密解密

加密(encrypt)解密(decrypt)采用 Oracle DBMS_OBFUSCATION_TOOLKIT package. 利用这个包,我们可以对数据进行DES,Triple DES或者MD5加密. DESGETKEY --产生密钥,用于DES算法 DES3GETKEY -- 产生密钥,用于Triple DES算法 DESENCRYPT -- 用DES算法加密数据 DESDECRYP…

SpringBoot中的注解详解(二)

四、Param() &#xff08;mapper包 Dao层&#xff09; Param()&#xff1a; 功能&#xff1a; 用于在Mapper接口的方法参数上标记参数名称&#xff0c;以便在SQL语句中引用这些参数。 参数命名&#xff1a;在Mapper接口的方法参数上使用Param注解&#xff0c;可以为参数指定一…

基于SpringBoot的速食零食商城+LW示例参考

1.项目介绍 功能模块&#xff1a;管理端&#xff08;用户管理、账号管理、商品分类管理、商品信息管理、订单管理等&#xff09;&#xff0c;用户端&#xff08;商品信息、登录注册、我的订单等&#xff09;技术栈&#xff1a;SpringBoot&#xff0c;thymeleaf&#xff0c;MyB…

15分钟学 Go 第 34 天:依赖管理——Go Modules

第34天&#xff1a;依赖管理——Go Modules 目标&#xff1a;学习和掌握Go语言中的依赖管理工具“Go Modules”&#xff0c;理解如何使用Go Modules进行依赖管理。 一、Go Modules 简介 Go Modules 是 Go 语言官方推出的依赖管理工具&#xff0c;旨在解决 Go 语言项目中的依赖…

JavaWeb--Maven

1.初始Maven 1.1介绍 Maven 是一款用于管理和构建Java项目的工具&#xff0c;是Apache旗下的一个开源项目 。 1.2Maven的作用 2.Maven概述 2.1Maven介绍 Apache Maven是一个项目管理和构建工具&#xff0c;它基于项目对象模型(Project Object Model , 简称: POM)的概念&am…