QTextEdit中提供了三个设置编辑器文本的方法,分别是setText、setHtml、setPlainText,这三者之间的区别如下:

  • setHtml是个普通方法,调用时,参数内容按html文本处理,进行解析将解析后的内容显示在编辑器中,setHtml有对应的查询方法toHtml方法
  • setPlainText是个槽方法,直接将参数指定文本按纯文本显示在编辑器中,不进行任何解析,setPlainText有对应的查询方法toPlainText方法
  • setText是个槽方法,调用时,参数内容可以是纯文本也可以是html文本,该方法自动解析文本的内容来识别文本格式,根据格式不同来进行不同的处理,纯文本直接显示,html文本会进行解析将解析后的内容显示在编辑器中,类似于浏览器对html文档的解析。建议如果知道输入的文本格式时,准确调用上面两个方法,而不是调用setText。setText没有对应的查询方法

当输入文本是一个html文本并且会按html文本解析时,除了将解析内容显示出来,还会将html文档的基本框架(包括title、head、body、html等标签,但不含展示内容控制部分的标签如p、div、li、href、link等)保存到QTextEdit的html属性中。但是需要注意:

  • 解析后展示内容相关控制的原始标签有可能会被转换为等效的标签,如div标签内只有纯文本时可能被转换为p等,具体老猿没有仔细研究
  • 当html文本用toHtml输出时,是将html属性中保存的html框架文本+将显示内容对应的html文本生成输出的html文本,其中显示内容对于的html文本会被插入html属性保存文本的body标签内,并且是按照转换后的内容来生成的,与调用setHtml设置的原始内容可能会出现不同
  • 当html文本使用setHtml设置为编辑器的文本后,调用toPlainText输出文本时,会将所有html标签过滤,只输出界面上展示的纯文本内容
  • 当在编辑器中手工输入html标签相关的文本时,编辑器只会将其输入内容当成纯文本处理,如手工输入html标签相关的文本使用toPlainText输出文本时,会将其按照输入内容基本保持不变的输出,唯一例外是&nbsp会转换成空格输出

老猿Python,跟老猿学Python!

PyQt(Python+Qt)学习随笔:QTextEdit的setText、setHtml、setPlainText之间的区别的更多相关文章

  1. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的按钮改变缺省文字的方法

    在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButton ...

  2. PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...

  3. PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性不能覆盖写的问题

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dra ...

  4. PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性

    老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖 ...

  5. PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响

    老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系&g ...

  6. PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系

    老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>中,老猿觉得dragE ...

  7. PyQt(Python+Qt)学习随笔:视图中的拖放操作注意事项

    老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt) ...

  8. PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性

    autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性

    accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...

  10. PyQt(Python+Qt)学习随笔:Qt Designer中部件的toolTip、toolTipDuration、statusTip、whatsThis属性

    toolTip属性 toolTip属性设置部件的toolTip提示信息,toolTip提示信息在鼠标放到控件上会浮动出一个小框显示提示信息.默认情况下,仅显示活动窗口子部件的toolTip,可以通过在 ...

随机推荐

  1. 【SpringCloud】05.Eureka的高可用

    1.简单情况 2.为了达到Eureka的高可用,可以多个Eureka互相注册. 3.我们需要修改两处: Eureka Client Eureka Server 3.1 Eureka Client 在C ...

  2. python数据分析 Numpy基础 数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  3. 使用webapi绑定layui数据表格完整增删查改记录

    因为每次给layui数据表格绑定数据或者类似操作的时候  总要重新做一遍 而且忘记很多东西 所以干脆写博客把相关东西记录下来 便于查阅和修正 以下是一个完整的数据表格i项目的增删改查案例 先来看后台 ...

  4. Docker - 解决 gitlab 容器上的项目进行 clone 时,IP 地址显示一串数字而不是正常 IP 地址的问题

    问题背景 通过 gitlab 容器创建了一个项目,想 clone 到本地,结果发现项目的 IP 地址是一串数字 问题排查 明明创建项目的时候,IP 地址还是正常的鸭! 再看看项目的 settings ...

  5. Node.js 搞Javascript开发的无论如何要尝试一下

    我想找个因子给大家介绍Node.js 这样吧,我想Jquery的占有率那么高,就拿Jquery来说吧. https://github.com/jquery/jquery 首先打开Jquery的gith ...

  6. “3+3”看华为云FusionInsight如何引领“数据新基建”持续发展

    摘要:一个统一的现代化的数据基建需要三类架构来实践三种不同的应用场景. 近期,美国知名科技企业风投机构A16Z总结出一套通用的技术架构服务,分为以下三种场景. 一.数据基建架构全景 数据流向显示,左侧 ...

  7. VS2017新建MVC+ORM中的LinqDb访问数据库项目

    1.前提概述 ORM对象关系映射(Object-Relational Mapping)是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言 ...

  8. docker生产——容器通信

    简介 在接触docker的第一天起,大家应该就知道:docker容器使用沙箱机制,相互之间没有接口,一般情况下内部访问通过IP+端口.本地容器默认分配的IP极易发生变化,所以靠IP+端口访问的方式缺失 ...

  9. 还是畅通工程(最小生成树 并查集 Prim Kruskal)

    Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只 ...

  10. git 强制更新本地和强制提交覆盖

    强制更新覆盖本地: git pull时出现冲突 放弃本地修改,使远程库内容强制覆盖本地代码git fetch --all //只是下载代码到本地,不进行合并操作git reset --hard ori ...