QtWebkit: console application

前提是你 提交于 2019-11-30 14:13:56

问题


I am new to Qt.

I am building a console application and I need to process lot of real world html pages. QtWebkit comes as an easy choice because of clearly cut APIs and easy availability.

I checked out the docs and they say that I can load pages by using QWebView::load(). But I am building a console application and I cannot use a widget. I get the error as: ?

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

So how can I process the html pages using QtWebkit in console application.


回答1:


QtWebkit can be used in a widget-less environment, but can't be executed with QCoreApplication.

The solution is to use a fake X server to execute the program.

Install Xvfb and then:

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

PD: Using framecapture Webkit example from docs: http://doc.qt.io/archives/qt-4.7/webkit-framecapture.html




回答2:


QWebPage can be used in a widget-less environment.

To load a page, do something like this

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

To get access to the DOM tree, you can use QWebFrame::documentElement(). See the API for how to use this.



来源:https://stackoverflow.com/questions/3528076/qtwebkit-console-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!