Python PyQt5模塊實(shí)現(xiàn)一個(gè)瀏覽器的示例代碼
1. 首先是環(huán)境的安裝 (本人使用的是PyCharm,python3.6)
pip3 install PyQt5
(沒有指定版本的話,默認(rèn)會(huì)安裝最新的)
pip3 install sip
pip3 install PyQtWebEngine
(PyQtWebEngine是Qt WebEngine的一組框架,該框架提供了在應(yīng)用程序中嵌入 Web 內(nèi)容的能力,并且基于 Chrome 瀏覽器。)
2. 實(shí)現(xiàn)代碼
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')), "前進(jìn)", 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, "新建標(biāo)簽頁") 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_())
3. 運(yùn)行結(jié)果
4. Tips
如果提示說缺少哪些模塊的話,一般Pycharm都會(huì)有提示安裝,如果沒有提示,可以參考一下我運(yùn)行成功的庫:
矢量圖的話,可以去網(wǎng)上下載自己喜歡的風(fēng)格,有很多可以免費(fèi)下載的代碼部分參考了爬遍天下無敵手哥哥的文章http://www.dbjr.com.cn/article/185526.htm
到此這篇關(guān)于Python PyQt5模塊實(shí)現(xiàn)一個(gè)瀏覽器的示例代碼的文章就介紹到這了,更多相關(guān)PyQt5 瀏覽器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python PyQt5實(shí)戰(zhàn)項(xiàng)目之網(wǎng)速監(jiān)控器的實(shí)現(xiàn)
- Python實(shí)戰(zhàn)項(xiàng)目用PyQt5制作漫畫臉GUI界面
- Python編程使用PyQt5庫實(shí)現(xiàn)動(dòng)態(tài)水波進(jìn)度條示例
- Python編程使用PyQt5制作動(dòng)態(tài)鐘表示例
- 利用Python+PyQt5實(shí)現(xiàn)簡易瀏覽器的實(shí)戰(zhàn)記錄
- Python PyQt5實(shí)戰(zhàn)項(xiàng)目之查詢器的實(shí)現(xiàn)流程詳解
相關(guān)文章
pytorch教程之Tensor的值及操作使用學(xué)習(xí)
這篇文章主要為大家介紹了pytorch教程中關(guān)于Tensor的操作使用,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家升職加薪,共同進(jìn)步2021-09-09基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序
這篇文章主要介紹了基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序,實(shí)例分析了scrapy實(shí)現(xiàn)采集程序的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04python中的隨機(jī)數(shù)種子seed()用法說明
這篇文章主要介紹了python中的隨機(jī)數(shù)種子seed()用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Django框架自定義模型管理器與元選項(xiàng)用法分析
這篇文章主要介紹了Django框架自定義模型管理器與元選項(xiàng)用法,結(jié)合實(shí)例形式分析了自定義模型管理器與元選項(xiàng)的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07