说明
结合自己的毕设需求,要在基于pyqt的桌面程序中内置一个web浏览器,特此记录。
前排提示:本文使用的方法组件是QtWebEngineWidgets,但pyqt6中不带有QtWebEngineWidgets,而且大概5.10及以上版本的pyqt5也将QtWebEngineWidgets移除了,需要自己安装,并且安装后是在pyqt5的目录中
因此要使用web界面的话,最好全部使用pyqt5进行开发,不然模块混合使用pyqt6,pyqt5会出现错误(我这里只是一个独立界面,就只是这块用了pyqt5)。
一、安装PyQtWebEngine
首先在anaconda的虚拟环境中安装QtWebEngineWidgets,使用pip安装即可
安装命令为:
pip install PyQtWebEngine
安装完后这个模块才会出现在PyQt5的目录里, 导入方法为 :
from PyQt5 import QtWebEngineWidgets
二、设计方法
1.QtDesinger设计界面
我这界面是这样设计的,大致思想跟Android的设计似的,分为上下两个horizonlayout,再分别往里面放自己要的组件,然后下面这个webview一般在QTdesigner中是找不到的,可以先把外层的弄好,在代码里填充这块的生成代码
ui转化的py代码中:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 781, 31))
self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout