PyQt5中未包含QtWebEngine的解决方案

在新版的PyQt5中是没有WebView的,但是相关学习资料中包括了这个部分。所以参照了几篇帖子,总结了以下的方法

软件版本:Pycharm2021 2.3 PyQt5 5.15

1. 解决没有QtWebEngine包的问题

我使用的是Anaconda Prompt进入cmd环境,我将包安装在pytorch环境中

使用pip install PyQtWebEngine方法即可安装,详见下图

PyQt5中未包含QtWebEngine的解决方案_第1张图片

2. 解决Qt designer没有QWebEngineView的方法

(1)在左侧控件中选择Widget控件

 (2)右击选择 Promote to

(3)输入以下内容,点击Add,即将Widget升级成WebEngine,但是,这个控件不能输入参数,即网址。需要在ui转成的py文件中添加URL

PyQt5中未包含QtWebEngine的解决方案_第2张图片

 3. 解决生成ui转py文件中,程序报错问题

在将ui文件转成py文件后,py文件中并没有URL等参数,需要自己手动修改,需要将下图的注释3行代码替换成未注释的代码即可

# self.widget = QtWebEngineWidgets.QWebEngineView(self.centralwidget)
# self.widget.setGeometry(QtCore.QRect(280, 470, 120, 80))
# self.widget.setObjectName("widget")
self.webview = QtWebEngineWidgets.QWebEngineView(self.centralwidget)
self.webview.setGeometry(QtCore.QRect(280, 470, 120, 80))
self.webview.setUrl(QtCore.QUrl("https://www.baidu.com/"))
self.webview.setObjectName("webview")

4.编写运行程序

运行程序大同小异,基本不用修改,只要修改导入包的文件名即可

import sys
import MainWinAbsolute
from PyQt5.QtWidgets import QApplication, QMainWindow

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainwindow = QMainWindow()
    # 导入主控界面
    ui = MainWinAbsolute.Ui_MainWindow()
    # 导入控件
    ui.setupUi(mainwindow)
    mainwindow.show()
    sys.exit(app.exec())

5.运行结果

PyQt5中未包含QtWebEngine的解决方案_第3张图片

 

你可能感兴趣的:(python)