簡體   English   中英

PyQt5 QWebEngineView 不顯示任何內容

[英]PyQt5 QWebEngineView not Displaying Anything

因此,我正在使用 PyQt5 構建一個簡單的 Web 瀏覽器,使用 QtWebEngineView,它工作正常,但是當我在地址欄中鍵入內容並按 Enter 時,當前頁面發生更改,但輸入的屏幕仍然是空白的 Z2567A5EC9705EB7AC2C984033E 地址不加載。

它也不適用於https://

"""A Simple Web Browser Written in Python and PyQt5"""

import sys

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QIcon
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QApplication, QMainWindow, QToolBar, QAction, QLineEdit


class PyChromeWindow(QMainWindow):
    DEFAULT_SEARCH_ENGINE = QUrl("https://www.google.com")

    def __init__(self):
        super(PyChromeWindow, self).__init__()
        self.browser = QWebEngineView(self)
        self.browser.setUrl(self.DEFAULT_SEARCH_ENGINE)

        # ToolBar
        self.browser_tool_bar = QToolBar()
        self.addToolBar(self.browser_tool_bar)

        # Back Action
        self.back_btn = QAction(QIcon('./resources/back_arrow16px.png'), 'Back')
        self.back_btn.triggered.connect(self.browser.back)
        self.browser_tool_bar.addAction(self.back_btn)

        # Forward Action
        self.forward_action = QAction(QIcon('./resources/forward_arrow16px.png'), 'Forward')
        self.forward_action.triggered.connect(self.browser.forward)
        self.browser_tool_bar.addAction(self.forward_action)

        # Refresh Action
        self.refresh_action = QAction(QIcon('./resources/refresh_icon16px.png'), 'Refresh')
        self.refresh_action.triggered.connect(self.browser.reload)
        self.browser_tool_bar.addAction(self.refresh_action)

        # Home Action
        self.home_action = QAction(QIcon('./resources/home_icon16px.png'), 'Home')
        self.home_action.triggered.connect(lambda: self.browser.setUrl(self.DEFAULT_SEARCH_ENGINE))
        self.browser_tool_bar.addAction(self.home_action)

        # Address Bar
        self.address_bar = QLineEdit()
        self.address_bar.returnPressed.connect(self.navigate_to_url)
        self.browser_tool_bar.addWidget(self.address_bar)

        self.setCentralWidget(self.browser)
        self.showMaximized()

    def navigate_to_url(self):
        """Navigate to a specific URL"""
        url = QUrl(self.address_bar.text())
        self.browser.load(url)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setApplicationName("PyChrome")
    window = PyChromeWindow()
    app.exec_()

屏幕保持空白

對於 QWebEngineView,“www.google.com”不是有效的 url,在這種情況下,您必須使用QUrl::fromUserInput()來推斷出有效的 url。

url = QUrl.fromUserInput(self.address_bar.text())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM