您好,登錄后才能下訂單哦!
這篇“怎么用Python PyQt5模塊實現一個瀏覽器”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用Python PyQt5模塊實現一個瀏覽器”文章吧。
pip3 install PyQt5
(沒有指定版本的話,默認會安裝最新的)pip3 install sip
pip3 install PyQtWebEngine
(PyQtWebEngine是Qt WebEngine的一組框架,該框架提供了在應用程序中嵌入 Web 內容的能力,并且基于 Chrome 瀏覽器。)
from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtWebEngineWidgets import * import os import sys class 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_webview app = QApplication(sys.argv) browser = MainWindow() browser.show() sys.exit(app.exec_())
如果提示說缺少哪些模塊的話,一般Pycharm都會有提示安裝,如果沒有提示,可以參考一下我運行成功的庫:
以上就是關于“怎么用Python PyQt5模塊實現一個瀏覽器”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。