为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Qt嵌入基本的HTML页面?

如何使用Qt嵌入基本的HTML页面?

慕慕森 2023-09-26 17:08:05
我正在使用 PySide2.QtWebEngineWidgets.QWebEngineView() 在其上设置 Html 以显示如下所示的基本页面。该 html 文件在浏览器中工作正常,因为它的所有文件都位于与 html 文件相关的同一文件夹中。将 Html 设置为以下文件后,我收到此异常:Qt 错误:Uncaught ReferenceError: require is not defined这是否与 Qt 不像常规浏览器那样找不到相关文件有关?或者还有什么我应该做的吗?或者 QWebEngineView 不够先进,无法执行 javascript?如果是这样我应该使用什么?我只想创建一个网页小部件并加载我的 Html,如下所示。其他一切都是由 Html 代码完成的。重现:将以下 html 代码另存为 html 文件运行这段代码:from PySide2 import QtCore, QtWidgets, QtGuifrom PySide2.QtWebEngineWidgets import QWebEngineVieweditor = QWebEngineView()htmlfile = 'C:/myHtmlFile.html'with open(htmlfile, 'r') as f:    html = f.read()    editor.setHtml(html)    editor.show()<!DOCTYPE html><html><head>    <meta http-equiv="X-UA-Compatible" content="IE=edge" />    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></head><body><div id="container" style="width:800px;height:600px;border:1px solid grey"></div><script src="monaco-editor/min/vs/loader.js"></script><script>    require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});    require(['vs/editor/editor.main'], function() {        var editor = monaco.editor.create(document.getElementById('container'), {            value: [                'function x() {',                '\tconsole.log("Hello world!");',                '}'            ].join('\n'),            language: 'javascript',            fontFamily:"Verdana",            theme: "vs-dark"        });    });</script></body></html>
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

require 命令需要文件系统信息,因此您不能使用 HTML 字符串,但您需要创建一个 HTML 文件并使用 load() 加载它:


import os


from PySide2 import QtCore, QtWidgets, QtWebEngineWidgets



CURRENT_DIR = os.path.dirname(os.path.realpath(__file__))



if __name__ == "__main__":

    import sys


    app = QtWidgets.QApplication(sys.argv)

    view = QtWebEngineWidgets.QWebEngineView()


    filename = os.path.join(CURRENT_DIR, "index.html")

    view.load(QtCore.QUrl.fromLocalFile(filename))

    view.show()

    sys.exit(app.exec_())

├── index.html

├── main.py

└── monaco-editor

    ├── CHANGELOG.md

    ├── dev

    ├── esm

    ├── LICENSE

    ├── min

    ├── min-maps

    ├── monaco.d.ts

    ├── package.json

    ├── README.md

    └── ThirdPartyNotices.txt

https://img1.sycdn.imooc.com//65129fb60001a07a06390500.jpg

查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 467 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信