qt QTextCursor详解

news/2024/11/8 17:11:03 标签: qt
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.niftyadmin.cn/n/5744190.html

相关文章

uniapp实现H5和微信小程序获取当前位置(腾讯地图)

之前的一个老项目&#xff0c;使用 uniapp 的 uni.getLocation 发现H5端定位不准确&#xff0c;比如余杭区会定位到临平区&#xff0c;根据官方文档初步判断是项目的uniapp的版本太低。 我选择的方式不是区更新uniapp的版本&#xff0c;是直接使用高德地图的api获取定位。 1.首…

【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024往期回顾&#xff1a; 【机器学习】有监督学习由浅入深讲解分类算法Fisher算法讲解每日一言&#x1f33c;: 今天不想跑&#xff0c;所以才去跑&#xff0c;这才是长…

RK3568 关于python依赖Miniconda3虚拟环境自启动

有关如何安装Miniconda3可以查看博客:RK3568 安装Miniconda3_miniconda3 aarch64 linux-CSDN博客 然后目前有个需求是需要开机自启动python脚本,但是需要依赖于虚拟环境,也就是说一起来就要打开虚拟环境并运行python脚本,一旦没有虚拟环境,python脚本就无法运行 解决办法…

Go语言的常用内置函数

文章目录 一、Strings包字符串处理包定义Strings包的基本用法Strconv包中常用函数 二、Time包三、Math包math包概述使用math包 四、随机数包&#xff08;rand&#xff09; 一、Strings包 字符串处理包定义 Strings包简介&#xff1a; 一般编程语言包含的字符串处理库功能区别…

使用Python简单实现客户端界面

服务端实现 import threading import timeimport wx from socket import socket, AF_INET, SOCK_STREAMclass LServer(wx.Frame):def __init__(self):wx.Frame.__init__(self, None, id1002, titleL服务器端界面, poswx.DefaultPosition, size(400, 450))# 窗口中添加面板pl …

mysql常见的一些配置项

MySQL 有许多配置选项&#xff0c;可以用来调整其行为以满足特定的需求。以下是一些常见的配置选项&#xff0c;除了大小写敏感之外&#xff0c;这些配置选项也经常被调整&#xff1a; 1. 字符集和排序规则 character_set_server: 设置服务器的默认字符集。collation_server:…

基于STM32的贪吃蛇游戏教学

引言 贪吃蛇是一款经典的电脑和手机游戏&#xff0c;它的简单性和趣味性使其成为很多人童年记忆的一部分。在本教程中&#xff0c;我们将创建一个基于STM32的贪吃蛇游戏项目。本项目将使用一个OLED显示屏来展示游戏画面&#xff0c;并使用按键来控制蛇的移动。通过本教程&#…

智能化健身房管理:Spring Boot与Vue的创新解决方案

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…