您现在的位置是:网站首页>>Python>>python

PyQt5实现加载web界面和嵌入html代码

发布时间:2019-03-07 14:20:39作者:wangjian浏览量:2468点赞量:1

    之前使用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_())

    展示效果如下:

    image.png

    二: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_())

    现象如下:

    image.png

1 +1