之前使用Pyqt5做了一个简单的弹窗功能,那么我们是否可以使用PyQt5实现将一个web网站直接嵌入到Pyqt5的弹窗中呢?是否可以直接将我们编写的hhtml嵌入到Pyqt5的弹窗中呢?
Pyqt5的QWebEngineView控件主要就是用来将html页面嵌入到Pyqt5窗口中,我们可使用QWebEngineView控件来实现将web界面或html嵌入到Pyqt5弹窗中
这里注意下:
对于Pyqt5拓展,在v5.11及更高版本,32位Windows系统下不包含QWebEngineView控件,如果你在使用QWebEngineView控件过程中提示:
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'
出现如上这种错误的话,解决方案为,安装Pyqt5的5.11版本以下的拓展包
pip install pyqt5==5.10.1
一:Pyqt5实现嵌入web界面
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle('百度') #窗口标题
self.setGeometry(5,30,1355,730) #窗口的大小和位置设置
self.browser=QWebEngineView()
#加载外部的web界面
self.browser.load(QUrl('https://www.baidu.com'))
self.setCentralWidget(self.browser)
if __name__ == '__main__':
app=QApplication(sys.argv)
win=MainWindow()
win.show()
app.exit(app.exec_())
展示效果如下:
二:Pyqt5实现嵌入html代码
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle('百度') #窗口标题
self.setGeometry(5,30,1355,730) #窗口的大小和位置设置
self.browser=QWebEngineView()
# 加载html代码(这里注意html代码是用三个单引号包围起来的)
self.browser.setHtml('''<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
</head>
<body>
<div>测试html</div>
</body>
</html>''')
self.setCentralWidget(self.browser)
if __name__ == '__main__':
app=QApplication(sys.argv)
win=MainWindow()
win.show()
app.exit(app.exec_())
现象如下: