问题标签 [qwebengineview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
465 浏览

qt - QT QWebEngineView:如何注入触摸事件(touchstart、touchmove、touchend)?

我想将“touchstart”、“touchmove”、“touchend”等触摸事件注入QWebEngineView。然后,我应该能够捕获在 webview 中运行的 html 页面中的事件,例如使用 jquery,如下所示:

我尝试按照此SO 答案中的说明使用 QMouseEvents并且它有效。但不是 QTouchEvents。

有什么建议么 ?

0 投票
2 回答
3714 浏览

c++ - Qt QWebEngineView 不允许加载本地资源

编辑:这不是重复的。链接的问题处理一个 CORS 安全问题,其中浏览器不允许您从不同来源加载脚本。我的问题与基本资源加载方案(file:///vsqrc:/)有关。

我正在尝试使用该file:///方案在 QWebEngineView 中加载本地 html 文档。html 文件还引用了本地存储的 jquery 库。加载页面的代码如下:

接下来是简约的 html 文档:

文档加载正常,但 JavaScript 失败并出现以下错误:

无论如何,如何强制 QWebEngineView 加载和执行脚本?

编辑:我按照@eyllanesc 的建议进行操作,并将我的所有文件添加为 qrc 资源。现在效果很好。

这是更新后的源代码(注意 C++ 和 HTML 代码中对 qrc 资源的引用):

以及对应的html文件:

0 投票
2 回答
7284 浏览

python - 在 html 中为 PyQt5 网络引擎使用本地文件

我正在尝试将绘图图嵌入到 PyQt5 webengine 视图中。我能够使用以下方法做到这一点:

以交互模式在 qwebview 中打开 plotly

如果您阅读它,该文章解释说您在使用 webengine 视图时不能直接在 HTML 中包含 javascript(它在加载超过 2 MB 的文件时会出现问题)。但是,我正在尝试使 javascript 的源是 plotly-min.js 的本地副本(保存在项目文件夹中),以便使用该程序的任何人都不需要互联网连接来查看图表它生成。我试图在 html 上遵循一些示例,但无济于事。

可用于 Internet 连接的原始代码是:

如果我理解正确,我需要更改这部分:

我已经尝试过:

老实说,我不知道 HTML。这是代码中唯一的 HTML(其余在 Python 3 中)。有谁知道为什么上述可能不起作用以及我需要改变什么?我怀疑我可能会以某种方式遇到上述问题所引用的 2 MB 限制,因为我在网上找到的关于如何在 HTML 中引用本地文件的不同变体似乎并没有改变任何东西。

0 投票
0 回答
507 浏览

c++ - Qt 5.6 如何在我的自定义小部件插件中使用 QWebEngineView?

我正在尝试创建一个 Qt 自定义小部件插件来包装 QWebEngineView。但我发现 QWebEngineView 似乎不适用于 Qt Designer。

下面附上演示代码。在构建并将此插件放置在 Qt 插件文件夹中之后,Qt Designer 将无法正确启动(无 GUI 窗口)。

如果我删除该行m_web = new QWebEngineView();,则 Qt Designer 可以正确加载该插件。

如何解决这个问题?

在此处输入图像描述

0 投票
1 回答
1139 浏览

python - “全屏不可用”将 YouTube 视频作为 iframe 嵌入 QWebEngineView

我正在尝试在 QWebEngineView 中嵌入 youtube 视频,视频加载正常但全屏按钮被禁用,并显示此消息“全屏不可用”,即使嵌入代码确实具有“allowfullscreen”

代码片段:

0 投票
1 回答
328 浏览

c++ - Qt 如何获取发送者信号的发送者或如何知道 QWebEngineView 的 loadStarted url?

QWebEngineView 有信号 void loadStarted()。当它从 QWebEnginePage 接收到时,它会发出这个信号。QWebEnginePage 从 QWebEnginePagePrivate 覆盖了这个函数,它是 void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false),但在 QWebEnginePage 类参数中,provisionalUrl 标记为 Q_UNUSED(),但我想知道它的值。我该怎么做?

0 投票
3 回答
1365 浏览

python - 有什么方法可以同步调用 QWebEnginePage 的对象“toHtml”方法?

我正在尝试从 QWebEnginePage 对象获取 html 代码。根据 Qt 参考,QWebEnginePage 对象的“toHtml”是异步方法,如下所示。

将页面内容检索为 HTML 的异步方法,包含在 HTML 和 BODY 标记中。成功完成后,将使用页面内容调用 resultCallback。

所以我试图找出如何同步调用这个方法。

我想要得到的结果如下。

0 投票
1 回答
391 浏览

c++ - 如何将 QWebEngineUrlRequestInfo 重定向到本地文件?

我有一个简单的 Qt 应用程序,可以在QWebEngineView. 我想将url中带有“static”一词的所有http请求重定向到本地文件。使用WebUrlRequestInterceptor我重新实现了该interceptRequest方法。这是代码:

在主要功能中我做了

interceptRequest似乎工作正常,但我收到一条消息。

不允许加载本地资源

我在网上搜索,我很多人都说我应该添加--disable-web-security标志。所以我在我的.pro文件中做了:

但这似乎不起作用。难道我做错了什么?有不同的解决方案吗?我可以制作自定义协议来提供本地文件并在 Qt 中重定向到它们作为解决方法吗?

我正在使用 Qt 5.9.1 和 QtCreator 4.3.1。

0 投票
2 回答
398 浏览

python - 在 QWebEngineView 中观看视频时无法使用全屏

使用 PyQt5 QWebEngineView,观看视频时无法使用 fullScreen:

在此处输入图像描述

0 投票
1 回答
2015 浏览

python - PyQt5 QWebview 刷新问题

我使用 QWebEngineView 并将其设置为 HTML。当我显示它时,HTML 总是小于我给 QWebEngineView 的总面积。右键单击页面并单击“重新加载”始终可以解决问题,但我不希望最终用户每次都单击“重新加载”。我已经在网上搜索了重新加载的方法,发现:

不过,这与右键单击的方式不同。

如果它有助于阅读代码,它会将 Plotly 情节显示为 HTML 页面(长篇故事)。

我使用以下代码创建了它所在的小部件:

后来我使用:

在将堆叠小部件设置为所选图形后,我尝试使用重新加载代码,但就像我说的那样,它具有相同的结果。

有没有办法让页面做与右键单击相同的事情 - >重新加载?

编辑

作为对评论的回应,我用来生成 html 的代码来自这个(数据是我从 SQL 加载到其他地方的 pandas DataFrame,但我在这里包含了一个玩具 DataFrame):