news 2026/5/8 6:42:26

qt:QList和ExtraSelection

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
qt:QList和ExtraSelection

文章目录

    • QList
      • 1.概述
      • 2.内部实现与性能
      • 3.基本用法
    • ExtraSelection
      • 1.概述
      • 2.示例

QList

1.概述

在Qt框架中,QList 是一个容器类,它在内部实现上类似于一个数组,但也提供了一些链表的特性。QList 的设计旨在提供一个在多数情况下既高效又方便的通用列表容器。用于存储元素列表。它提供了丰富的功能,包括添加、移除、访问元素等。同时,它以模板类的形式提供,能安全、高效地存储和管理任何同类型的数据集合。

2.内部实现与性能

存储结构:现代 QList 将元素存储在一段连续的相邻内存位置中,类似数组,但是与普通数组不同,它可以增长和和缩减,自动管理内存分配。

性能特点:

  • 基于索引的随机访问速度快(O(1)复杂度),在列表末尾的追加(append)操作速度飞快。

  • 由于它提供了一些链表的特性,在列表中间或开头插入或删除元素时,会数组插入、删除更高效

  • 内存占用低,隐式共享,当你复制一个QList时,不会立即复制所有元素,而是共享相同的数据,仅在修改时才进行实际的复制

3.基本用法

头文件

#include<QList>

实例化

QList<int>list;

添加元素

list.append(1);list.append(2);

访问元素

list[0]; list.at(1);

删除元素

list.removeAt(1);//删除索引 i 处的元素list.removeOne(20);//删除一个值为20的元素list.clear();//清空所有元素

ExtraSelection

1.概述

QTextEdit::ExtraSelection是 Qt 框架中的一个辅助结构体,它的主要作用是在 QTextEdit 或 QPlainTextEdit 这类文本编辑器控件中,为指定的文本区域提供临时的、附加的高亮显示或特殊格式

ExtraSelection 结构体非常简单,只包含两个核心成员变量:
cursor:这是一个 QTextCursor 对象,用来精准定位你想要应用格式的文本范围,比如连续的几个单词、一整行、甚至是文档中的某个矩形区域

format:这是一个 QTextCharFormat 对象,用来定义你想要应用的具体样式,比如文字的颜色、背景色、甚至字体是否加粗等
QTextCharFormat函数可在QT帮助中索引

2.示例

//设置当前行高亮QList<QTextEdit::ExtraSelection>extraselections;QTextEdit::ExtraSelection ext;//获取当前行ext.cursor=ui->textEdit->textCursor();//颜色QBrushqbrush(Qt::lightGray);//设置样式ext.format.setBackground(qbrush);//设置文本背景色ext.format.setProperty(QTextFormat::FullWidthSelection,true);//添加extraselections.append(ext);ui->textEdit->setExtraSelections(extraselections);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 6:41:29

书匠策AI大揭秘:毕业论文写作的“全能魔法棒”

在学术的广阔天地里&#xff0c;毕业论文就像是一座巍峨的山峰&#xff0c;等待着每一位学子去攀登、去征服。然而&#xff0c;面对这座山峰&#xff0c;许多人往往会感到力不从心&#xff0c;从选题到参考文献&#xff0c;从大纲构建到内容撰写&#xff0c;每一步都充满了挑战…

作者头像 李华
网站建设 2026/5/8 6:38:30

YOLOv11-seg 改进系列 | 引入原创 RSCD 重参数共享卷积分割头,增强 Head 表达力并压低计算量

YOLOv11-seg 改进 | RSCD 重参数共享卷积 Head 替换全流程指南 一、本文简介 二、模块原理详解 2.1 层级结构 2.2 与原始 Segment/Detect 的核心差异 2.3 前向传播流程 三、改进思想与创新点 3.1 背景与动机 3.2 创新点一:在共享 Head 中引入重参数卷积 3.3 创新点二:共享参数…

作者头像 李华
网站建设 2026/5/8 6:37:30

“灵语星火”第二阶段团队记录(一)

前言 LingualSpark&#xff08;灵语星火&#xff09;智能外语学习平台顺利进入第二阶段&#xff1a;系统设计与基础平台搭建&#xff08;4月6日 - 4月19日&#xff09;。如果说第一阶段是“采石挖矿”——完成12万条数据的采集、清洗和标注&#xff1b;那么第二阶段就是“夯实地…

作者头像 李华
网站建设 2026/5/8 6:36:31

新手教程使用Python在Taotoken上调用大模型API的完整步骤

新手教程使用Python在Taotoken上调用大模型API的完整步骤 本文面向刚开始接触大模型API调用的开发者&#xff0c;旨在提供一个清晰、可操作的入门指南。你将学习如何通过Taotoken平台&#xff0c;使用Python语言完成从获取凭证到成功发起第一个API调用的全过程。整个过程与使用…

作者头像 李华
网站建设 2026/5/8 6:34:10

AIGC 时代,面向开发者的内容营销正在被重新定义

AIGC 时代&#xff0c;开发者营销正在被重新定义当 80% 的开发者开始用 AI 助手做技术决策、当一个开源项目的 Star 数已经不能说明问题、当百度品专的 ROI 越来越难看……我们必须承认&#xff1a;开发者营销&#xff0c;已经走到了一个范式断点。一、一个真实的反差 2025 年下…

作者头像 李华
网站建设 2026/5/8 6:34:02

Flutter for OpenHarmony 中 webview_flutter 适配实战指南

Flutter for OpenHarmony 中 webview_flutter 适配实战指南 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net 摘要 本文基于真实项目实践&#xff0c;完整介绍了在 Flutter for OpenHarmony&#xff08;以下简称 FOH&#xff09;工程中&…

作者头像 李华