繁体   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