Python PyQt 5 모듈 은 브 라 우 저의 예제 코드 를 실현 합 니 다.

4994 단어 PyQt5브 라 우 저
1.우선 환경의 설치(본인 은 PyCharm,python 3.6)pip3 install PyQt5(지정 한 버 전이 없 으 면 기본적으로 최신 버 전이 설 치 됩 니 다)pip3 install sip pip3 install PyQtWebEngine(PyQt WebEngine 은 Qt WebEngine 의 프레임 워 크 입 니 다.이 프레임 워 크 는 응용 프로그램 에 웹 콘 텐 츠 를 삽입 하 는 능력 을 제공 하고 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.실행 결과
在这里插入图片描述
4. Tips
만약 에 어떤 모듈 이 부족 하 다 고 하면 보통 Pycharm 은 설치 알림 이 있 습 니 다.만약 에 알림 이 없 으 면 제 가 성공 적 으로 실행 한 라 이브 러 리 를 참고 하 십시오.
在这里插入图片描述
벡터 그래프 는 인터넷 에서 자신 이 좋아 하 는 스타일 을 다운로드 할 수 있 습 니 다.무료 로 다운로드 할 수 있 는 코드 부분 은 천하무적 오빠 의 글 을 참고 하 였 습 니 다https://www.jb51.net/article/185526.htm
파 이 썬 PyQt 5 모듈 이 브 라 우 저의 예제 코드 를 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 PyQt 5 브 라 우 저 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기