成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Python使用Pyqt5實現簡易瀏覽器(最新版本測試過)

瀏覽:66日期:2022-07-27 13:00:12

準備環境

首先我們需要的是我們的開發環境,我使用的是python 3.8.2和pyqt 5.14.2,因為有強迫癥,所以喜歡使用最新版的

安裝QtWebEngineWidgets

這是新版使用的web瀏覽器引擎,更加的貼近谷歌瀏覽器,好像是需要單獨安裝,我就是這樣的

pip3 install QtWebEngineWidgets

多tab頁面

做這個的時候遇到好多坑,比如在多個tab里面打開頁面,要使用這個QTabWidget,這個不用我們再去下載了,已經集成了

頁面鏈接點擊無反應

這個搞了我半天,我之前還一直以為是跨域的問題,其實是這個機制的問題,需要重寫createWindow方法

# 創建瀏覽器,重寫重寫createwindow方法實現頁面連接的點擊跳轉class WebEngineView(QWebEngineView): def __init__(self, mainwindow, parent=None): super(WebEngineView, self).__init__(parent) self.mainwindow = mainwindow # 重寫createwindow() def createWindow(self, QWebEnginePage_WebWindowType): new_webview = WebEngineView(self.mainwindow) self.mainwindow.create_tab(new_webview) return new_webview

然后大體就是一些頁面的布局,這個可以使用Qt Designer,可以自動轉化成為我們的py代碼

然后就是一些前進,后退,刷新,停止的方法

整體代碼,可運行

# -*- coding: utf-8 -*-# @Author: dshj# @Date : 2020/04/26import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWebEngineWidgets import QWebEngineView# 創建主窗口class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # 設置窗口標題 self.setWindowTitle(’簡易瀏覽器’) # 設置窗口大小900*600 self.resize(1300, 700) self.show() # 創建tabwidget(多標簽頁面) 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) # 第一個tab頁面 self.webview = WebEngineView(self) # self必須要有,是將主窗口作為參數,傳給瀏覽器 self.webview.load(QUrl('http://www.baidu.com')) self.create_tab(self.webview) # 使用QToolBar創建導航欄,并使用QAction創建按鈕 # 添加導航欄 navigation_bar = QToolBar(’Navigation’) # 設定圖標的大小 navigation_bar.setIconSize(QSize(16, 16)) # 添加導航欄到窗口中 self.addToolBar(navigation_bar) # QAction類提供了抽象的用戶界面action,這些action可以被放置在窗口部件中 # 添加前進、后退、停止加載和刷新的按鈕 back_button = QAction(QIcon(’icons/houtui.png’), ’Back’, self) next_button = QAction(QIcon(’icons/qianjin.png’), ’Forward’, self) stop_button = QAction(QIcon(’icons/close.png’), ’stop’, self) reload_button = QAction(QIcon(’icons/shuaxin.png’), ’reload’, self) # 綁定事件 back_button.triggered.connect(self.webview.back) next_button.triggered.connect(self.webview.forward) stop_button.triggered.connect(self.webview.stop) reload_button.triggered.connect(self.webview.reload) # 將按鈕添加到導航欄上 navigation_bar.addAction(back_button) navigation_bar.addAction(next_button) navigation_bar.addAction(stop_button) navigation_bar.addAction(reload_button) # 添加URL地址欄 self.urlbar = QLineEdit() # 讓地址欄能響應回車按鍵信號 self.urlbar.returnPressed.connect(self.navigate_to_url) navigation_bar.addSeparator() navigation_bar.addWidget(self.urlbar) # 讓瀏覽器相應url地址的變化 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) # 創建tab頁面 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) # 關閉tab頁面 def close_Tab(self, index): if self.tabWidget.count() > 1: self.tabWidget.removeTab(index) else: self.close() # 當只有1個tab時,關閉主窗口# 創建瀏覽器,重寫重寫createwindow方法實現頁面連接的點擊跳轉class WebEngineView(QWebEngineView): def __init__(self, mainwindow, parent=None): super(WebEngineView, self).__init__(parent) self.mainwindow = mainwindow # 重寫createwindow() def createWindow(self, QWebEnginePage_WebWindowType): new_webview = WebEngineView(self.mainwindow) self.mainwindow.create_tab(new_webview) return new_webview# 程序入口if __name__ == '__main__': app = QApplication(sys.argv) # 創建主窗口 browser = MainWindow() browser.show() # 運行應用,并監聽事件 sys.exit(app.exec_())

結果

可以去點擊地址去嘗試

Python使用Pyqt5實現簡易瀏覽器(最新版本測試過)

代碼下載

圖標什么的可以在阿里巴巴矢量圖標庫里面去找到

貼一下github地址

https://github.com/Tangleia/Python-tools-borwser

到此這篇關于Python使用Pyqt5實現簡易瀏覽器(最新版本測試過)的文章就介紹到這了,更多相關Python 簡易瀏覽器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产欧美日本一区二区三区| 亚洲.国产.中文慕字在线| 国产精品九色蝌蚪自拍| 久久国产精品高清| 国产在线国偷精品产拍免费yy| 精品久久国产97色综合| 精品一区二区三区av| 一区二区三区免费观看| 国产精品yjizz| 久久久久一区二区三区四区| 东方aⅴ免费观看久久av| 3d动漫精品啪啪| 国产一区二区三区蝌蚪| 欧美精三区欧美精三区| 国产精品99久久久久| 欧美一区二区播放| jlzzjlzz欧美大全| 久久婷婷成人综合色| 99精品国产视频| 国产婷婷色一区二区三区| 99久久国产综合精品麻豆| 久久精品视频免费观看| 欧美日韩成人一区二区三区| 国产精品剧情在线亚洲| 亚洲清纯自拍| 午夜欧美大尺度福利影院在线看| 另类图片国产| 另类的小说在线视频另类成人小视频在线| 欧洲精品一区二区三区在线观看| 韩国欧美国产1区| 日韩午夜电影av| av网站一区二区三区| 高潮精品一区videoshd| 91看片淫黄大片一级在线观看| 国产午夜精品理论片a级大结局| 91在线看国产| 国产精品素人视频| 国产偷久久久精品专区| 日韩精品三区四区| 欧美乱妇20p| 成年人午夜久久久| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美日韩一区二区视频在线观看| 中文字幕一区二区三区在线不卡| 黑丝一区二区三区| 亚洲不卡在线观看| 欧美日韩一区不卡| 成人一区在线看| 亚洲国产精品ⅴa在线观看| 亚洲精品社区| 亚洲.国产.中文慕字在线| 欧美日韩午夜在线| 99riav一区二区三区| 亚洲精品成a人| 在线观看日韩毛片| eeuss影院一区二区三区| 亚洲色大成网站www久久九九| 97精品久久久午夜一区二区三区| 久久精品日产第一区二区| 在线观看一区欧美| 国产亚洲福利| 色婷婷av久久久久久久| 欧洲激情一区二区| 精品国产免费视频| 日韩视频免费直播| 亚洲一二三区视频在线观看| 色综合久久久久久久| 黑人巨大精品欧美黑白配亚洲| 欧美tickling挠脚心丨vk| 亚洲成人在线| 日韩在线卡一卡二| 欧美日韩国产成人在线91| 91丨porny丨国产入口| 亚洲精品福利视频网站| 在线观看国产精品网站| 不卡在线视频中文字幕| 亚洲女厕所小便bbb| 国产精品视频你懂的| 日本丰满少妇一区二区三区| 色综合天天综合狠狠| 欧美jizzhd精品欧美巨大免费| 亚洲国产日韩在线| 羞羞视频在线观看欧美| 欧美性猛交xxxxxxxx| 亚洲精品久久| 国产成人一区二区精品非洲| 国产欧美在线观看一区| 色悠悠久久综合| 国产69精品一区二区亚洲孕妇| 中文字幕乱码日本亚洲一区二区| 美女尤物久久精品| 99精品偷自拍| 亚洲国产精品一区二区www| 欧美一级视频精品观看| 亚洲每日在线| 久草这里只有精品视频| 久久―日本道色综合久久| 色婷婷一区二区三区四区| 95精品视频在线| 日韩vs国产vs欧美| 久久这里只精品最新地址| 久久综合福利| 欧美高清一区二区| 久久99国产精品久久99果冻传媒| 国产亚洲欧美激情| 欧美日韩一区二区电影| 亚洲一级高清| 国产一区二区三区在线观看免费 | 日韩高清电影一区| 国产视频一区在线观看| 日本精品裸体写真集在线观看| 欧美影院一区| 老司机精品视频一区二区三区| 中文字幕亚洲综合久久菠萝蜜| 欧美一区二区三区喷汁尤物| 亚洲少妇自拍| 懂色av噜噜一区二区三区av| 一二三区精品福利视频| 久久先锋资源网| 激情文学一区| 高清不卡一区二区| 免费高清视频精品| 亚洲精品国产视频| 国产亚洲综合色| 3d动漫精品啪啪1区2区免费 | 欧美一区二区三区思思人| 亚洲在线成人| 欧美日韩一区二| 国产乱人伦精品一区二区在线观看| 亚洲国产精品精华液网站| 久久久久久久久久久电影| 这里是久久伊人| 色94色欧美sute亚洲13| 国产日韩欧美一区二区三区在线观看 | 国产九九视频一区二区三区| 激情六月婷婷久久| 久久久人人人| 亚洲毛片av| 91网站最新地址| 国产一区不卡视频| 日本系列欧美系列| 亚洲综合在线五月| 国产精品福利影院| 久久精品亚洲精品国产欧美kt∨| 欧美军同video69gay| 色婷婷精品大在线视频| 亚洲一区二区三区高清| 亚洲视频福利| 欧美福利一区二区三区| 国产成人8x视频一区二区| 精品一二三四在线| 污片在线观看一区二区| 亚洲午夜激情网页| 亚洲欧美日韩国产综合在线| 国产精品天美传媒沈樵| 国产片一区二区| 久久久综合网站| www国产精品av| 欧美精品一区二| 国产一区二区三区久久久久久久久| 91在线视频免费91| 久久99国产精品尤物| 日韩av网站在线观看| 午夜精品视频一区| 亚洲日韩欧美一区二区在线| 国产精品狼人久久影院观看方式| 久久综合狠狠综合久久综合88 | 青青草视频一区| 婷婷国产在线综合| 亚洲1区2区3区视频| 亚洲一区二区三区在线| 亚洲一二三区不卡| 亚洲国产成人av| 亚洲一区二区视频| 亚洲高清在线精品| 视频一区二区中文字幕| 五月综合激情网| 日韩中文字幕av电影| 蜜桃一区二区三区四区| 老司机午夜精品99久久| 黄一区二区三区| 国产成人综合亚洲网站| 成人午夜视频免费看| 91亚洲男人天堂| 欧美日韩ab| 亚洲精品一区二区三区av| 亚洲欧美清纯在线制服| 色婷婷一区二区三区四区| 欧美性生活久久| 91精品国产综合久久久久| 日韩欧美国产系列| 国产日韩高清在线| 亚洲日穴在线视频| 亚洲一二三四在线| 蜜桃精品在线观看| 国产黄色精品网站| 91麻豆精品一区二区三区| 亚洲大胆在线| 久久aⅴ国产紧身牛仔裤| 精品1区2区3区|