中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python PyQt5模塊實現一個瀏覽器

發布時間:2022-03-29 16:41:33 來源:億速云 閱讀:423 作者:iii 欄目:移動開發

這篇“怎么用Python PyQt5模塊實現一個瀏覽器”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用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 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_())

3. 運行結果

怎么用Python PyQt5模塊實現一個瀏覽器

4. Tips

如果提示說缺少哪些模塊的話,一般Pycharm都會有提示安裝,如果沒有提示,可以參考一下我運行成功的庫:

怎么用Python PyQt5模塊實現一個瀏覽器

以上就是關于“怎么用Python PyQt5模塊實現一個瀏覽器”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武胜县| 鄂伦春自治旗| 崇礼县| 阜阳市| 夏邑县| 九寨沟县| 且末县| 阿图什市| 唐海县| 伊宁县| 吐鲁番市| 泸定县| 福建省| 岫岩| 灌云县| 台湾省| 聊城市| 东光县| 铅山县| 玛多县| 磴口县| 穆棱市| 嘉荫县| 长沙市| 苍溪县| 青川县| 日土县| 榆社县| 玉田县| 台中县| 广河县| 平安县| 防城港市| 卫辉市| 开化县| 济南市| 鞍山市| 天峻县| 吉首市| 内丘县| 武穴市|