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