Qt扫盲-QTextBrowser理论总结

news2024/11/19 9:41:33

QTextBrowser理论总结

    • 1. 简述
    • 2. 文档来源和内容
    • 3. 导航
    • 4. 用途

1. 简述

QTextBrowser 顾名思义其实就是一个文本阅读器,但是这个类类扩展了 QTextEdit 的只读模式功能,当然了 QTextEdit 其实也就是QTextBrowser 的父类。添加的功能主要是一些导航 navigation 功能,也即是类似浏览器的那种跳转,用户可以跟踪 超文本文档中的链接。这里的超文本主要是指 html 格式文件或者 markdown 格式文件。而且是支持打开 web 网络上的链接哈。

如果要用可编辑的富文本编辑器,就使用 QTextEdit。如果想要一个没有超文本导航的文本浏览器,就使用QTextEdit 的 Read-Only 模式即可,并使用QTextEdit::setReadOnly() 来禁用编辑。

如果只需要显示一小段富文本信息的话,就使用 QLabel。
在这里插入图片描述

2. 文档来源和内容

QTextBrowser 可以使用 QTextEdit 的设置内容 setHtml() 或 setPlainText() 方法进行设置,但 QTextBrowser 也实现了 setSource() 函数,可以使用带路径的命名文档作为源文本。在使用的时候可以用相对文件路径或者绝对文件路径。

如果文档名称以 定位锚点结尾(例如在 html 文件中,“#anchor”,这个就是标记这个定位锚点在文件的位置),文本浏览器会自动滚动到该位置,我们也可以手动设置滚动到某个位置(使用 scrollToAnchor() )方法。当用户单击超链接时,QTextBrowser 将使用链接的 href 值作为参数调用 setSource() 本身。这样可以通过连接到 sourceChanged() 信号来跟踪当前源文件名。

在markdown格式文件中,这个使用的超链接 方法是 [占位字] (链接)
就像下面:

[1.md](./1.md) 

在打开外部的 http链接是可以的,把 setOpenExternalLinks(bool) 设置为 true 就可以,但是打开的话就是 用的 系统默认浏览器打开的,不是自己打开的

3. 导航

QTextBrowser提供了back() 和forward() 方法,可以使用它们来实现“后退”和“前进”按钮。home() 方法将会跳转为显示的第一个初始文档。功能就像 Qt Assistant 里面的功能一样。
在这里插入图片描述

当用户单击 定位锚点时,会发出 anchorClicked() 信号。这样会默认去跳转到定位的位置,但是如果我们想要覆盖浏览器的默认导航行为,用 setSource() 函数在连接到 anchorClicked() 信号的槽函数里面中提供新的文档源、或者在槽函数中重新定义自己的功能。

如果要加载存储在 Qt resource system 中的文档,请使用qrc文件中的URL行加载,也即是要加一个前缀。
例如:

对于文档资源路径 :/docs/index.html 使用 qrc:/docs/index.html 作为 setSource() 的 URL。

4. 用途

QTextBrowser 其实就是一个封装的非常好的离线版文本查看器,主要还是 用 html 文档多些,用的md文档也多,一般我把这个当成帮助文档浏览器控件用。主要就是离线查看的功能。我们把本地的html文档写好,把 home一设置好,其实就已经完成了所有功能。

其实你看 Qt Assistant 的内容其实就是用 QTextBrowser 来显示的
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/112556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对路由的基本理解和使用

一、认识路由 1、生活中的路由器 构造:路由器上有多个网线接口,每一个接口都对应一台设备 功能:多台设备能同时上网 2、编程中的路由和路由器 (1)后端渲染和后端路由 ①概念 早期的网站开发整个HTML页面是由服务器…

【附源码】如何C语言打印出心形表白?

使用C语言实现打印出心形,初学者的表白神器~ 我们分了4部分,前3行一部分,4-6行一部分,7-13行一部分,最后一行一部分,读者请仔细阅读注释,已经写的很详细了。 前三行输出,为了让初学…

6.1 文本情感倾向性分析

文章目录一、自然语言情感分析1.1 使用深度神经网络完成情感分析任务1.2 处理变长数据1.3 学习句子的语义二、循环神经网络RNN和长短时记忆网络LSTM2.1 RNN和LSTM网络的设计思考2.2 RNN网络结构2.3 LSTM网络结构2.4 使用LSTM完成情感分析任务三、使用飞桨实现基于LSTM的情感分析…

Python pandas有好几百个库函数,你都用过吗(4)

上一篇链接: https://blog.csdn.net/boysoft2002/article/details/128428569 S~W: Function46~56 Types[Function][45:] [set_eng_float_format, show_versions, test, timedelta_range, to_datetime, to_numeric, to_pickle, to_timedelta, unique,…

技术分享 Oracle下启用块跟踪

创建存放块跟踪文件目录 [oraclehost01 ~]$ cd /u01/app [oraclehost01 app]$ mkdir BCT 启用块跟踪 SQL> alter database enable block change tracking using file /u01/app/BCT/rman.bct; 检查块跟踪状态 SQL> col filename for a22 SQL> select filename, status,…

linux中级——libcurl库访问百度

libcurl简介: 在linux底下用c语言做http编程方法,依赖libcurl。 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基…

1549:最大数——线段树

【题目描述】 原题来自:JSOI 2008 给定一个正整数数列 a1,a2,a3,⋯,an ,每一个数都在 0∼p–1 之间。可以对这列数进行两种操作: 添加操作:向序列后添加一个数,序列长度变成 n1; 询问操作:询…

数据库系统概论笔记

数据库系统概论(王珊 萨师煊 编著)笔记。 第一章 绪论 1.数据库系统概述 1.1数据库的4个基本概念 数据:描述事物的符号记录称为数据。数据的含义称为数据的语义,数据与其语义是不可分的。数据库:长期存储在计算机内、有组织的、可共享的大…

fpga实操训练(仿真和状态机)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在进行fpga上板子实验之前,相信很多同学都是通过仿真的方式来实现verilog学习的。仿真比较容易,也不需要依赖物理硬件&…

offsetTop、clientTop、scrollTop等属性详解【概念+详细例子分析】

文章目录一、 offsetscrollclient详细讲解1-1 offset系列1-2 client系列1-3 scroll系列二、 一张图片即可理解一、 offsetscrollclient详细讲解 1-1 offset系列 MDN中offset… offsetWidth/offsetHeight :对象的可见宽度offsetLeft/offsetTop: 当前元素距浏览器边界…

AcWing第 82 场周赛

第k个数 给定一个长度为 nn 的整数数列 a1,a2,…,ana1,a2,…,an,以及一个整数 kk。 请你计算并输出该数列从大到小排序后的第 kk 个数。 输入格式 第一行包含两个整数 n,kn,k。 第二行包含 nn 个整数 a1,a2,…,ana1,a2,…,an。 输出格式 一个整数&#xff0c…

map与set详解

🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸 文章目录一、两个概念二、set①set的两种遍历方式②set的erase③set的count三、map①SGI-STL中关于键值对的定义②map的insert③访问键值对④map的op…

docker redis容器化(极简教程)

1.通过redis-cli连接你原来的redis,进入后输入info,查看到具体版本号 2.下载redis官方镜像,docker pull redis:你的版本号 3.创建一个新文件夹redis,mkdir -r /hadoop/redis 4.复制你原来的redis.conf,到redis文件夹中,cp /usr/l…

c语言 指针进阶5 6 自定义冒泡函数 qsort

指向函数指针数组的指针 回调函数 如何使用 一个函数可以实现加减乘除 calc() 不同点通过函数参数传进去 代码解释如下 int Add(int x, int y) {return x y; } int Sub(int x, int y) {return x - y; } int Mul(int x, int y) {return x * y; } in…

JDBC -- API

目录 DriverManager 驱动管理类 作用 注册驱动 获取数据库连接 Connection 数据库连接对象 作用 获取执行SQL的对象 管理事务 Statement 作用 执行SQL语句 ResultSet 结果集对象 作用 封装了DQL查询语句的结果 获取查询结果 PreparedStatement 作用 预编译SQ…

C#大型医院HIS系统源码 医院信息管理系统源码 C/S架构 VS2013+sql2012

了解更多源码内容,可私信我。 开发环境:VS2013sql2012 C/S架构 一、门诊系统: 1、挂号与预约系统:实现了医院门诊部挂号处所需的各种功能,包括门诊安排的管理,号表的生成及维护,门诊预约管理和挂号处理&…

6. SSM整合

1. SSM整合配置 SM整合流程 创建工程SSM整合 Spring SpringConfig MyBatis MybatisConfigJdbcConfigjdbc.properties SpringMVC ServletContainerInitConfigSpringMvcConfig 1.1 创建工程&#xff0c;添加依赖和插件 <dependencies><dependency><groupId&g…

【LeetCode】解数独 [H](深度优先遍历)

37. 解数独 - 力扣&#xff08;LeetCode&#xff09; 一、题目 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只…

设计模式-责任链模式

一、知其然 责任链字面含义第一联想到的就是他是一个链式的行为&#xff0c;就像一个链条一样把所产生的动力传输到到齿轮上一样&#xff1b;还有类似生活中的一个游戏“击鼓传花”&#xff0c;这样说好像也是泛泛而谈&#xff0c;来看看度娘的官方概念&#xff08;摘自百度百科…

[每周一更]-(第26期):反爬虫机制

随着网站的越来越普及&#xff0c;我们开发出来的知识类网站更不希望被竞争对手爬虫&#xff0c;虽然现在网络中充斥着各种各样的蜘蛛&#xff0c;有合法的浏览器爬虫&#xff0c;以及不合法 的人为爬虫&#xff0c;所以攻防战一直都存在&#xff0c;我们只能更好的设定规则&am…