加微信进交流群:xituxiaoshutong100

PyQt5系列教程(十八)打开网页

PyQt5开发 迷途小书童 0评论

软硬件环境

  • 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_()

程序执行效果如下

pyqt5 webengineview

核心代码其实就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>

pyqt5 webengineview

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 webengineview

源码下载

https://github.com/xugaoxiang/learningPyQt5

PyQt5系列教程

更多PyQt5教程,请移步

https://xugaoxiang.com/category/python/pyqt5/

喜欢 (0)
发表我的评论
取消评论

表情