6

我是 Qt 的新手。

我正在构建一个控制台应用程序,我需要处理很多现实世界的 html 页面。QtWebkit 是一个简单的选择,因为它具有清晰的 API 和易用性。

我查看了文档,他们说我可以使用 QWebView::load() 加载页面。但我正在构建一个控制台应用程序,我不能使用小部件。我得到的错误是:?

QWidget: Cannot create a QWidget when no GUI is being used
The program has unexpectedly finished.

那么如何在控制台应用程序中使用 QtWebkit 处理 html 页面。

4

2 回答 2

9

QtWebkit 可以在没有小部件的环境中使用,但不能与 QCoreApplication 一起执行。

解决方案是使用假 X 服务器来执行程序。

安装 Xvfb 然后:

xvfb-run --server-args="-screen 0 1024x768x24" ./framecapture google.cat google.png

PD:使用文档中的帧捕获 Webkit 示例: http ://doc.qt.io/archives/qt-4.7/webkit-framecapture.html

于 2011-05-18T08:05:38.690 回答
6

QWebPage可以在没有小部件的环境中使用。

要加载页面,请执行以下操作

QWebPage page;
QUrl url = ...;
page.mainFrame()->load(url);

要访问 DOM 树,您可以使用QWebFrame::documentElement(). 请参阅API了解如何使用它。

于 2010-08-20T09:28:07.787 回答