我是Qt的新手。
我正在构建一个控制台应用程序,我需要处理很多真实世界的HTML页面。 QtWebkit是一个简单的选择,因为它有明确的API和易用性。
我检查了文档,他们说我可以使用QWebView :: load()加载页面。但我正在构建一个控制台应用程序,我无法使用小部件。我得到的错误是: ?
QWidget: Cannot create a QWidget when no GUI is being used
The program has unexpectedly finished.
那么如何在控制台应用程序中使用QtWebkit处理html页面。
答案 0 :(得分:9)
QtWebkit可以在无小部件的环境中使用,但不能用QCoreApplication执行。
解决方案是使用虚假的X服务器来执行程序。
安装Xvfb,然后:
xvfb-run --server-args="-screen 0 1024x768x24" ./framecapture google.cat google.png
PD:使用docs:http://doc.qt.io/archives/qt-4.7/webkit-framecapture.html
中的framecapture Webkit示例答案 1 :(得分:6)
QWebPage
可以在无小部件的环境中使用。
要加载页面,请执行以下操作
QWebPage page;
QUrl url = ...;
page.mainFrame()->load(url);
要访问DOM树,您可以使用QWebFrame::documentElement()
。有关如何使用此功能,请参阅API。