小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
软硬件环境
- Windows 10 64bit
- Anaconda3 with python 3.7
- PyCharm 2020.1
- PyQt5
前言
PyQt5使用QWebEngineView控件来展示HTML页面,对老版本中的QWebView类已经不再维护,因为QWebEngineView使用Chromium内核可以给用户带来更好的体验。
Qt慢慢淘汰了古老的WebKit,取而代之的是使用WebEngine框架。WebEngine是基于谷歌的Chromium引擎开发的,也就是内部集成了谷歌的Chromium引擎。
在PyQt5中打开网页
要使用WebEngine,需要安装依赖库PyQtWebEngine
pip install PyQtWebEngine
以打开我的博客网站为例,来看下面的代码
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle('网页示例')
self.setGeometry(10, 20, 1080, 720)
self.browser = QWebEngineView()
self.browser.load(QUrl('https://xugaoxiang.com'))
self.setCentralWidget(self.browser)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MainWindow()
win.show()
app.exec_()
程序执行效果如下
核心代码其实就2句
self.browser = QWebEngineView()
self.browser.load(QUrl('https://xugaoxiang.com'))
实例化QWebEngineView并调用方法load,传入网站的url就可以了。
load方法除了可以传入远程的url,也可以传入本地的HTML文件,如下
self.browser = QWebEngineView()
self.browser.load(QUrl('file:///test.html'))
简单写个test.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>本地网页文件示例</title>
</head>
<body>
<p>PyQt5打开本地HTML文件示例</p>
</body>
</html>
QWebEngineView除了load方法,它还提供了另外一种方法,setHtml,它是以页面的html代码为参数,比如
self.browser = QWebEngineView()
self.browser.setHtml('''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>本地网页文件示例</title>
</head>
<body>
<p>PyQt5打开本地HTML文件示例,采用setHtml方法</p>
</body>
</html>
''')
源码下载
PyQt5系列教程
更多PyQt5教程,请移步