欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python PyQt5模塊實(shí)現(xiàn)一個(gè)瀏覽器的示例代碼

 更新時(shí)間:2021年07月11日 15:34:28   作者:sherlockjjobs  
在項(xiàng)目開發(fā)中,有的應(yīng)用程序可以運(yùn)行在web瀏覽器,本文主要介紹了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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • numpy自動(dòng)生成數(shù)組詳解

    numpy自動(dòng)生成數(shù)組詳解

    這篇文章主要介紹了numpy自動(dòng)生成數(shù)組詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python建立Map寫Excel表實(shí)例解析

    Python建立Map寫Excel表實(shí)例解析

    這篇文章主要介紹了Python建立Map寫Excel表實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • pytorch教程之Tensor的值及操作使用學(xué)習(xí)

    pytorch教程之Tensor的值及操作使用學(xué)習(xí)

    這篇文章主要為大家介紹了pytorch教程中關(guān)于Tensor的操作使用,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家升職加薪,共同進(jìn)步
    2021-09-09
  • 基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序

    基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序

    這篇文章主要介紹了基于scrapy實(shí)現(xiàn)的簡單蜘蛛采集程序,實(shí)例分析了scrapy實(shí)現(xiàn)采集程序的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 淺談Django+Gunicorn+Nginx部署之路

    淺談Django+Gunicorn+Nginx部署之路

    這篇文章主要介紹了Django+Gunicorn+Nginx部署之路,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Sanic框架基于類的視圖用法示例

    Sanic框架基于類的視圖用法示例

    這篇文章主要介紹了Sanic框架基于類的視圖用法,結(jié)合實(shí)例形式分析了Sanic框架基于類的視圖定義、使用及相關(guān)路由操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • python list排序的兩種方法及實(shí)例講解

    python list排序的兩種方法及實(shí)例講解

    本文主要介紹了python list排序的兩種方法及實(shí)例講解。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • 一篇文章帶你了解python正則表達(dá)式的正確用法

    一篇文章帶你了解python正則表達(dá)式的正確用法

    這篇文章主要介紹了Python中正則表達(dá)式的詳細(xì)教程,正則表達(dá)式是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • python中的隨機(jī)數(shù)種子seed()用法說明

    python中的隨機(jī)數(shù)種子seed()用法說明

    這篇文章主要介紹了python中的隨機(jī)數(shù)種子seed()用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Django框架自定義模型管理器與元選項(xiàng)用法分析

    Django框架自定義模型管理器與元選項(xiàng)用法分析

    這篇文章主要介紹了Django框架自定義模型管理器與元選項(xiàng)用法,結(jié)合實(shí)例形式分析了自定義模型管理器與元選項(xiàng)的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07

最新評(píng)論