问题描述
Pyqt开发桌面程序,其中的控件 Text Browser 不能显示网页源码的问题
比如说我使用Request库获取一个网页的源码:
import requests
class Web_tools:
def getcode(url):
hea = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}
# 模拟浏览器访问
data = requests.get(url, headers= hea)
data.encoding = 'utf-8'
return data.text
并在主程序调用该方法,控制台打印输出,并将Text Browser控件的文本内容设置为该源码内容
code = Web_tools.getcode(web)
print("网页源码为:"+code)
self.ui.load_pages.text_code.setText(code)
结果print可以正常输出源码,但打开程序发现Text Browser不能显示源码文本
原因分析:
Text Browser用来显示文本内容,普通文本倒没什么,但html格式的文本会执行(相当于源码的文本被他执行成网页了)
因此不会显示出网页的源码,但也很奇怪,有的网页就能正常显示出来
解决方案:
需要使用 Text Browser 显示源码时,使用setPlainText方法,而不是setText方法,这样就解决了
self.ui.load_pages.text_code.setPlainText(code)