Ошибка: Could not find QtWebEngineProcess.exe

У меня есть следующий код, это код простого браузера на Python с использованием фреймворка PyQT5

from PyQt5.QtWebEngineWidgets import *  # pip install pyqtwebengine
from PyQt5.QtWidgets import QShortcut  # pip install pyqt5
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import os


class Browser(QMainWindow):
    def __init__(self):
        super().__init__()
        self.tab_widget = QTabWidget()
        self.tab_widget.setDocumentMode(True)
        self.tab_widget.tabBarDoubleClicked.connect(self.tab_open_doubleclick)
        self.tab_widget.setTabsClosable(True)
        self.tab_widget.tabCloseRequested.connect(self.close_current_tab)
        self.setCentralWidget(self.tab_widget)

        self.tab_widget.setStyleSheet("""
            QTabBar{
                background: #f0f0f0;
            }
            QTabBar::tab{
                background: #fff;
                color: #0f0f0f;
                height: 22px;
                margin-left: 5px;
            }
            QTabBar::tab:selected{
                content: "|";
            }
            QTabBar::tab:selected{
                background-color: #b3b3b3;
                color: #000000;
                padding-left: 5px;
                padding-right: 5px;
                border: 1px solid #9e9e9e;
                border-top-left-radius: 4px;
                border-top-right-radius: 4px;
                border-bottom-left-radius: -4px;
                border-bottom-right-radius: -4px;
            }
            QTabBar::close-button{
                image: url("images/close.png");
                subcontrol-position: right;
            }
            QLabel{
                background-color: #23272a;
                font-size: 22px;
                padding-left: 5px;
                color: #fff;
            }
        """)

        qtoolbar = QToolBar("Nav")
        qtoolbar.setIconSize(QSize(30, 30))
        qtoolbar.setAllowedAreas(Qt.TopToolBarArea)
        qtoolbar.setFloatable(False)
        qtoolbar.setMovable(False)
        self.addToolBar(qtoolbar)

        qtoolbar.setStyleSheet("""
            QToolButton{
                border: 2px;
                padding: 1px 4px;
                background: transparent;
                border-radius: 4px;
            }
            QTollButton:hover{
                border: 1px;
                background: #c3c3c3;
            }
            QToolButton:selected{
                background: #a8a8a8;
            }
            QToolButton:pressed{
                background: #888888;
            }
        """)

        back_btn = QAction(QIcon(os.path.join("images", "back.png")), "Назад", self)
        back_btn.setStatusTip("Вернуться на предыдущую страницу")
        back_btn.triggered.connect(lambda: self.tab_widget.currentWidget().back())
        qtoolbar.addAction(back_btn)

        next_btn = QAction(QIcon(os.path.join("images", "forward.png")), "Вперёд", self)
        next_btn.setStatusTip("Перейти на страницу вперёд")
        next_btn.triggered.connect(lambda: self.tab_widget.currentWidget().forward())
        qtoolbar.addAction(next_btn)

        reload_btn = QAction(QIcon(os.path.join("images", "reload.png")), "Обновить страницу", self)
        reload_btn.setStatusTip("Перезагрузить страницу")
        reload_btn.triggered.connect(lambda: self.tab_widget.currentWidget().reload())
        qtoolbar.addAction(reload_btn)

        home_btn = QAction(QIcon(os.path.join("images", "home.png")), "Домой", self)
        home_btn.setStatusTip("Домой")
        home_btn.triggered.connect(lambda: self.nav_home())
        qtoolbar.addAction(home_btn)

        qtoolbar.addSeparator()

        self.https_icon = QLabel()
        self.https_icon.setPixmap(QPixmap(os.path.join("images", "lock.png")))
        qtoolbar.addWidget(self.https_icon)

        self.url_line = QLineEdit()
        self.url_line.returnPressed.connect(self.nav_to_url)
        qtoolbar.addWidget(self.url_line)

        new_tab_btn = QAction(QIcon(os.path.join("images", "add-icon.png")), "Новая вкладка", self)
        new_tab_btn.setStatusTip("Открыть новую вкладку")
        new_tab_btn.triggered.connect(lambda: self.add_new_tab())
        qtoolbar.addAction(new_tab_btn)

        info_btn = QAction(QIcon(os.path.join("images", "info.png")), "Информация", self)
        info_btn.triggered.connect(self.info)
        qtoolbar.addAction(info_btn)

        self.url_line.setStyleSheet("""
            border: 1px;
            border-radius: 10px;
            padding: 3;
            background: #fff;
            selection-background-color: darkgray;
            left:5px;
            right: 5px;
            font: 12px/14px sans serif;
        """)

        self.add_new_tab(QUrl("https://google.com"), "Домашняя страница")

        self.shortcut = QShortcut(QKeySequence("F5"), self)
        self.shortcut.activated.connect(lambda: self.tab_widget.currentWidget().reload())

        self.show()
        self.setWindowIcon(QIcon(os.path.join("images", "goose-icon.png")))

    def add_new_tab(self, qurl=QUrl("https://google.com"), label="blank"):
        browser = QWebEngineView()
        browser.settings().setAttribute(QWebEngineSettings.ScrollAnimatorEnabled, True)
        browser.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
        browser.page().fullScreenRequested.connect(lambda request: request.accept())
        browser.setUrl(qurl)

        tab = self.tab_widget.addTab(browser, label)
        self.tab_widget.setCurrentIndex(tab)

        browser.urlChanged.connect(lambda qurl, browser=browser: self.update_urlbar(qurl, browser))
        browser.loadFinished.connect(lambda _, i=tab, browser=browser:
                                     self.tab_widget.setTabText(tab, browser.page().title()))

    def tab_open_doubleclick(self, i):
        if i == -1:
            self.add_new_tab()

    def current_tab_changed(self, i):
        qurl = self.tab_widget.currentWidget().url()
        self.update_urlbar(qurl, self.tab_widget.currentWidget())
        self.update_title(self.tab_widget.currentWidget())

    def close_current_tab(self, i):
        if self.tab_widget.count() < 2:
            return

        self.tab_widget.removeTab(i)

    def update_title(self, browser):
        if browser != self.tab_widget.currentWidget():
            return
        title = self.tab_widget.current().page().title()
        self.setWindowTitle(f"{title} - Goose Browser")

    def info(self):
        QMessageBox.about(self, "Goose Browser", "Самый лучший браузер в мире!\nСоздан by Neor")

    def nav_home(self):
        self.tab_widget.currentWidget().setUrl(QUrl("https://google.com"))

    def nav_to_url(self):
        qurl = QUrl(self.url_line.text())
        if qurl.scheme() == "":
            qurl.setScheme("http")

        self.tab_widget.currentWidget().setUrl(qurl)

    def update_urlbar(self, url, browser=None):
        if browser != self.tab_widget.currentWidget():
            return

        if url.scheme() == "https":
            self.https_icon.setPixmap(QPixmap(os.path.join("images", "lock.png")))
        else:
            self.https_icon.setPixmap(QPixmap(os.path.join("images", "unlock.png")))

        self.url_line.setText(url.toString())
        self.url_line.setCursorPosition(999)



if __name__ == '__main__':
    app = QApplication([])
    QApplication.setApplicationName("Browser Test")
    app.setOrganizationName("sus")
    window = Browser()
    window.showMaximized()
    app.exec_()

Пробема возникает когда я хочу запустить данный код, при запуске появляется следующая ошибка

Could not find QtWebEngineProcess.exe

Я уже пол интернета перелазил, ничего не помогло. Помогите пожалуйста


Ответы (0 шт):