Загрузка изображений из разных источников в QTWebKit - PullRequest
2 голосов
/ 08 февраля 2010

Я пытаюсь создать «умный» веб-браузер для загрузки локальных изображений.В основном это работает как графический интерфейс для приложения.Я использую QTWebKit для питания браузера, проблема в том, что изображения данной страницы можно найти в разных местах, некоторые из них являются локальными файлами, другие находятся в разных файлах ресурсов.

Например: узел HTMLчтобы загрузить изображение x.jpg может выглядеть как <img src="x.jpg">, а для изображения y.gif на той же странице это может быть <img src="y.gif">, теперь x.jpg - это локальный файл, который может находиться либо в корневом каталоге, либо в другом месте,y.gif, с другой стороны, может находиться в файле ресурсов.

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

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

Может ли кто-нибудь указать мне правильное направление или у кого-нибудь есть идеи о том, как такой дизайн может быть реализован.

РЕДАКТИРОВАТЬ: Я управляюделегировать запросы путем переопределения QNetwrokAccessManager и QNetwrokReply и смог получить путь к изображению.Единственная проблема - загрузка изображения в поле зрения.В настоящее время я использую QHttp для обработки входящих запросов, но до сих пор не смог загрузить изображение.

пытался использовать функцию Get () QHttp и передавал путь к изображению jpg как (файл: /// path / to / image), а также попытался использовать локальный путь, но ничего не работает.

1 Ответ

1 голос
/ 25 февраля 2011

Взгляните на Как сказать QWebPage не загружать определенный тип ресурсов?
Вам нужен тот же подход, но вместо того, чтобы отбрасывать запрос, создав QNetworkRequest с пустым QUrl, вам нужно передать URL в файл на диске.

...