软硬件环境
- 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
教程,请移步