问题标签 [qwebpage]

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 投票
2 回答
2879 浏览

qt - 使用 QWebPage 创建整个页面的屏幕截图

我正在使用 Qt(带有 Qt 创建器的精美浏览器示例)使用此代码(从此处获取并转换)创建网页的屏幕截图:

但它只创建页面可见部分(视口)的屏幕截图。

如果我在开头添加这一行,屏幕截图是从整个页面创建的,但问题是,每次加载页面时都会添加一个新的滚动条。

知道如何解决这个问题吗?

0 投票
2 回答
770 浏览

qt - 如何创建 QWebFrame 实例

如何创建 a 的实例QWebFrame?(就我而言,我真的不需要QWebPage实例,一个QWebFrame就足够了。)

0 投票
6 回答
2406 浏览

qt - 如何在非 GUI 应用程序中使用 QWebPage

我想QWebPage在非 GUI Qt 应用程序中使用。我的意思是我根本不想与窗口服务器通信。不过,使用 QtGui 不是问题。

QWebPage在内部创建一些QWidget实例。因此,QCoreApplication无法使用。

但是,在创建QApplication实例时,我已经立即获得了 MacOSX 停靠图标。我不希望那样。这也意味着它以某种方式在 Cocoa 中将自己注册为 GUI 应用程序。

我的问题不仅限于 Mac。我想知道 Qt 是否有“官方”的方式来做到这一点。只有在没有的情况下,我才想知道具体的方法,例如现在在 Mac 上。


关于 Mac 的更具体一点:

还有一个LSBackgroundOnly属性,可以为一个 App 包设置,它指向我想要的方向(因此我仍然不确定它是否真的是纯控制台的,例如在没有 Quartz 的情况下也可以工作,等等。 )。但是,我根本没有 App 包。它只是一个简单的二进制文件(用作 shell 中的命令行工具)。

现在,我有一个小解决方法来隐藏停靠图标,但这很丑陋,因为它首先弹出然后消失:(Python 代码,但这并不重要......)

另外,我不确定它是否也适用于其他环境,可能作为系统守护程序左右。

0 投票
1 回答
280 浏览

python - 使用带有 unicode 的 QWebFrame.setContent() (Python+PySide)

我正在使用 QWebKit 来呈现一个 pdf 页面。到目前为止,我使用setHtml(), 将 html 代码提供给 QMainFrame,然后render()打印内容或将其导出为 pdf。到目前为止一切顺利,但我想使用setContent()将 inline-svg-images 包含到框架中,使用setHtml().

setContent()只接受 QByteArray,并且 html-Code 是 unicode。如何将 unicode 字符串提供给setContent()?

0 投票
1 回答
586 浏览

c++ - 首次加载后 QWebPage 无法正常工作

我正在编写一个使用 QWebPage 抓取一些网页的应用程序。当响应是 Http 重定向(例如 302、303 等)时,我遇到了一些麻烦。QWebPage 根本不遵循重定向。

为了解决这个问题,我已经连接到页面的网络管理器的完成信号以捕获响应的状态并加载任何重定向,但是,当我在 QWebPage 上第二次调用load方法时,它只是将 url 设置为空白并且不发出任何请求。

以下是一些相关的代码:

我的插槽:

0 投票
2 回答
944 浏览

c++ - 无法从 Qt 中的 QWebPage 接收下载请求

我正在尝试为 QGraphicsWebView 创建一个下载管理器,到目前为止它运行良好,除了一件事:我无法将下载请求从 QWebPage 发送到下载管理器。

这是我的代码,用于将下载请求信号连接到将请求转发到下载管理器的插槽。我在其他操作之前在插槽中放置了一条 qDebug() 消息,但未显示该消息。这意味着当我单击文件的链接时不会发送信号。

当用户单击文件的链接时,有没有办法可以发送信号?

0 投票
1 回答
220 浏览

segmentation-fault - QWebpage createPlugin 方法

可以给我一个如何解决它的想法。

第一页包含三个 <object> 标签:

这会导致以下函数被调用三次:

一切正常,我什至有几个插槽和信号连接在它们之间并且它工作正常。问题是当我以任何方式重新加载页面时(刷新或转到另一个页面并返回)。再次调用该函数,当尝试返回任何已嵌入的元素时,它崩溃并出现错误 0xC0000005 并且调试器给我一个警告,上面写着“劣质停止,因为它收到了来自操作系统的信号。信号名称: SIGSEGV 信号含义:分段错误。”

有任何想法吗?我什至尝试删除指针并在再次返回它们之前重新初始化它们,但是,“删除”指令会导致错误。谢谢你。

0 投票
1 回答
746 浏览

qt - 如何为我的浏览器创建网络历史记录

我是 Qt 的新手。我正在尝试创建一个示例浏览器应用程序。我已经创建了浏览器应用程序。现在我需要为我的应用程序创建 Web 历史记录。我不知道该怎么做。谁能帮我解决这个问题。提前致谢。

0 投票
1 回答
3066 浏览

qt - 如何在 QWebView/QWebPage 中实现“后退”操作

我有一个简单的小部件,它是 QWebView。我用 setHtml() 加载它。大多数时候这只是为了让用户可以阅读样式化的文本,但是有一些链接,如果单击一个,QWebView 会正确显示链接的页面,但现在无法返回原始页面. 我想实现一个返回键快捷方式(或者可能是一个返回按钮,但问题是一样的)。而且我不知道如何告诉我的 QWebView 或其 QWebPage 这样做。一些代码尝试了我能想到的一切:

这些都不会导致从链接向后导航。点击 ctl-[ 什么都不做。点击“b”进入 keyPressEvent 陷阱并调用 triggerAction 并激活,但没有任何可见的反应。

编辑:找到 WebPage.history(),并将以下内容添加到 key-b 陷阱:self.page().history().back() 这有点工作:如果我单击链接 start->A,self.page().history().canGoBack()则为 False 和self.page().history().back()什么也没做。但是,如果我单击另一个链接 start->A->B,现在它可以GoBack() 并返回页面 A。但我无法返回使用 setHtml() 加载的原始页面。

结论:WebView.setHtml() 不会在 WebPage.history 中创建条目。这可以解释为什么 backAction 似乎不起作用......

进一步编辑:在 Qt 助手中跟进我发现在 QWebFrame.setHtml() 下它承认,“注意:此方法不会影响会话或全局历史......”不幸的是,他们没有将该注释带回 QWebPage 或 QWebView . 事实上,这是有道理的:历史项目通常只是一个 URL,因此他们不想将 20K 或 50K 的 html 文本存储为历史项目,这并不奇怪。

0 投票
1 回答
444 浏览

c++ - QWebPage 和多线程

我有这个代码:

并输出:

在第二遍中,标签过多。什么是解决方法?或者我的错误在哪里?