首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在将本地html加载到PySide6 QWebEngineView时无法访问它?

为什么在将本地html加载到PySide6 QWebEngineView时无法访问它?
EN

Stack Overflow用户
提问于 2021-10-31 11:38:53
回答 2查看 102关注 0票数 0

我正在学习Qt6,我写了一个演示,将一个本地html文件放入其中以测试QWebEngineView小部件。但是,该网页会显示以下信息:

代码语言:javascript
运行
复制
Your file counldn't be accessed
It may have been moved, edited, or deleted.
ERR_FILE_NOT_FOUND

以下是我的test.py源代码:

代码语言:javascript
运行
复制
import sys

from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout)
from PySide6 import QtCore
from PySide6.QtWebEngineWidgets import QWebEngineView


class webView(QWidget):
    def __init__(self):
        super(webView, self).__init__()

        self.layout = QVBoxLayout(self)

        self.webV = QWebEngineView()
        self.fileDir = QtCore.QFileInfo("./docs.html").absoluteFilePath()
        print(self.fileDir)
        self.webV.load(QtCore.QUrl("file:///" + self.fileDir))

        self.layout.addWidget(self.webV)


if __name__ == "__main__":
    app = QApplication([])

    web = webView()
    web.show()

    sys.exit(app.exec())

此外,已将docs.html放入与test.py文件相同的目录中。当我打印web.fileDir时,结果是正确的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-31 16:34:50

你是硬编码的网址和路径可能是错误的,在这些情况下,网址是更好的一步。我假设html紧挨着.py,那么解决方案是:

代码语言:javascript
运行
复制
import os
from pathlib import Path
import sys

from PySide6.QtCore import QUrl
from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
from PySide6.QtWebEngineWidgets import QWebEngineView


CURRENT_DIRECTORY = Path(__file__).resolve().parent


class webView(QWidget):
    def __init__(self):
        super(webView, self).__init__()

        filename = os.fspath(CURRENT_DIRECTORY / "docs.html")
        url = QUrl.fromLocalFile(filename)

        self.webV = QWebEngineView()
        self.webV.load(url)

        layout = QVBoxLayout(self)
        layout.addWidget(self.webV)


if __name__ == "__main__":
    app = QApplication([])

    web = webView()
    web.show()

    sys.exit(app.exec())
票数 0
EN

Stack Overflow用户

发布于 2021-10-31 12:45:09

Qt中一般强烈建议使用qrc文件,并使用Qt资源管理系统。这里:Can QWebView load images from Qt resource files?是一个与你的问题相似的小而整洁的例子。您还可以查看官方的PySide6资源使用情况:https://doc.qt.io/qtforpython/tutorials/basictutorial/qrcfiles.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69786515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档