您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python PyQt5模块实现一个浏览器的示例代码

51自学网 2021-10-30 22:25:46
  python
这篇教程Python PyQt5模块实现一个浏览器的示例代码写得很实用,希望能帮到您。

1. 首先是环境的安装 (本人使用的是PyCharm,python3.6)

pip3 install PyQt5 (没有指定版本的话,默认会安装最新的)
pip3 install sip
pip3 install PyQtWebEngine
(PyQtWebEngine是Qt WebEngine的一组框架,该框架提供了在应用程序中嵌入 Web 内容的能力,并且基于 Chrome 浏览器。)

2. 实现代码

from PyQt5.QtCore import *from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtWebEngineWidgets import *import osimport sysclass MainWindow(QMainWindow):    def __init__(self, *args, **kwargs):        super().__init__(*args, **kwargs)        self.resize(2000, 1314)        self.show()        self.tabWidget = QTabWidget()        self.tabWidget.setTabShape(QTabWidget.Triangular)        self.tabWidget.setDocumentMode(True)        self.tabWidget.setMovable(True)        self.tabWidget.setTabsClosable(True)        self.tabWidget.tabCloseRequested.connect(self.close_Tab)        self.setCentralWidget(self.tabWidget)        self.webview = WebEngineView(self)        self.webview.load(QUrl("http://www.baidu.com"))        self.create_tab(self.webview)        navtb = QToolBar("Navigation")        navtb.setIconSize(QSize(16, 16))        self.addToolBar(navtb)        back_btn = QAction(QIcon(os.path.join('images', 'houtui.png')), "后退", self)        back_btn.triggered.connect(self.webview.back)        navtb.addAction(back_btn)        next_btn = QAction(QIcon(os.path.join('images', 'qianjin.png')), "前进", self)        next_btn.triggered.connect(self.webview.forward)        navtb.addAction(next_btn)        reload_btn = QAction(QIcon(os.path.join('images', 'refresh_icon.png')), "刷新", self)        reload_btn.triggered.connect(self.webview.reload)        navtb.addAction(reload_btn)        home_btn = QAction(QIcon(os.path.join('images', 'geren1.png')), "主页", self)        navtb.addAction(home_btn)        self.urlbar = QLineEdit()        stop_btn = QAction(QIcon(os.path.join('images', 'cross-circle.png')), "Stop", self)        stop_btn.triggered.connect(lambda: self.tabs.currentWidget().stop())        navtb.addAction(stop_btn)        self.urlbar.returnPressed.connect(self.navigate_to_url)        navtb.addSeparator()        navtb.addWidget(self.urlbar)        self.webview.urlChanged.connect(self.renew_urlbar)    def navigate_to_url(self):        q = QUrl(self.urlbar.text())        if q.scheme() == '':            q.setScheme('http')        self.webview.setUrl(q)    def renew_urlbar(self, q):        self.urlbar.setText(q.toString())        self.urlbar.setCursorPosition(0)    def create_tab(self, webview):        self.tab = QWidget()        self.tabWidget.addTab(self.tab, "新建标签页")        self.tabWidget.setCurrentWidget(self.tab)        self.Layout = QHBoxLayout(self.tab)        self.Layout.setContentsMargins(0, 0, 0, 0)        self.Layout.addWidget(webview)    def close_Tab(self, index):        if self.tabWidget.count() > 1:            self.tabWidget.removeTab(index)        else:            self.close()class WebEngineView(QWebEngineView):    def __init__(self, mainwindow, parent=None):        super(WebEngineView, self).__init__(parent)        self.mainwindow = mainwindow    def createWindow(self, QWebEnginePage_WebWindowType):        new_webview = WebEngineView(self.mainwindow)        self.mainwindow.create_tab(new_webview)        return new_webviewapp = QApplication(sys.argv)browser = MainWindow()browser.show()sys.exit(app.exec_())

3. 运行结果

在这里插入图片描述

4. Tips

如果提示说缺少哪些模块的话,一般Pycharm都会有提示安装,如果没有提示,可以参考一下我运行成功的库:

在这里插入图片描述

矢量图的话,可以去网上下载自己喜欢的风格,有很多可以免费下载的代码部分参考了爬遍天下无敌手哥哥的文章https://www.jb51.net/article/185526.htm

到此这篇关于Python PyQt5模块实现一个浏览器的示例代码的文章就介绍到这了,更多相关PyQt5 浏览器内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python使用Selenium自动进行百度搜索的实现
DRF之请求与响应的实现
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。