PyQt(Python+Qt)学习随笔:QTextEdit的setText、setHtml、setPlainText之间的区别
2024-09-07 07:15:42
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输出文本时,会将其按照输入内容基本保持不变的输出,唯一例外是 会转换成空格输出
老猿Python,跟老猿学Python!
最新文章
- JS.中文乱码,Jsp\Servlet端的解决办法
- phonegap开发经验谈之一命令行建立项目和准备工作
- 实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端
- [转载]JavaScript 中小数和大整数的精度丢失
- C++Primer 第一章
- java 文件和流
- linux shell 执行多个命令的方法
- Condition源码分析
- 自学Python2.1-基本数据类型-字符串str(object)
- nodejs批量导入数据eventproxy(回调函数嵌套解决方案)使用实例
- Android进阶(十五)socket通信——聊天室
- 第五篇Scrum冲刺博客
- Java开发笔记(六十五)集合:HashSet和TreeSet
- sharc dsp 学习记录1---2014-07-30
- python 安装pandas
- AOP 貌似是拦截器 对方法进行拦截
- 用LSTM生成武侠人名
- 3.控制hive map reduce个数
- Python 装饰器(进阶篇)
- k8s-configmap