QtWebkit: консольное приложение - PullRequest
6 голосов
/ 20 августа 2010

Я новичок в Qt.

Я создаю консольное приложение, и мне нужно обработать множество реальных HTML-страниц.QtWebkit является простым выбором из-за четко вырезанных API и легкой доступности.

Я проверил документы, и они говорят, что я могу загружать страницы с помощью QWebView :: load ().Но я создаю консольное приложение и не могу использовать виджет.Я получаю сообщение об ошибке:?

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

Так как я могу обрабатывать html-страницы, используя QtWebkit в консольном приложении.

Ответы [ 2 ]

9 голосов
/ 18 мая 2011

QtWebkit можно использовать в среде без виджетов, но нельзя выполнить с помощью QCoreApplication.

Решение состоит в том, чтобы использовать поддельный X-сервер для выполнения программы.

Установите Xvfb, а затем:

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

PD: пример использования framecapture Webkit из документации: http://doc.qt.io/archives/qt-4.7/webkit-framecapture.html

6 голосов
/ 20 августа 2010

QWebPage можно использовать в среде без виджетов.

Чтобы загрузить страницу, сделайте что-то вроде этого

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

Чтобы получить доступ к дереву DOM, вы можете использовать QWebFrame::documentElement(). См. API , чтобы узнать, как это использовать.

...