软硬件环境
- 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>
''')
源码下载
https://github.com/xugaoxiang/learningPyQt5
PyQt5系列教程
更多 PyQt5
教程,请移步