QtWebKit — как отобразить бинарное изображение из базы данных?

Я храню изображения в двоичном формате в базе данных SQLite (на стороне клиента) и использую QtWebKit внутри настольного приложения.

Все прекрасно работает, кроме необходимости отображать сохраненные в базе данных бинарные изображения.

Как отобразить бинарное изображение из базы данных в QtWebKit?

Спасибо.


person Zelid    schedule 10.06.2011    source источник


Ответы (3)


Одним из способов может быть реализация собственной схемы URL-адресов для этих внутренних ресурсов, например. mydb://foo.png — см. эту статью для обзора того, как это можно сделать.

person Paul Dixon    schedule 10.06.2011
comment
Ссылка не работает. https://wiki.python.org/moin/PyQt/Использование%20a%20Custom%20Protocol%20with%20QtWebKit — образец для PyQt. Спасибо за направление поиска - person Arty; 28.07.2016

Если изображения не такие большие, вы также можете взглянуть на схему URL data. См., например, этот вопрос.

person Steffen    schedule 10.06.2011

Вместо добавления нового протокола в этом SO вопросе дается простое решение

В основном извлеките образ и сохраните его на диске. Затем используйте метод setHtml() в QWebView чтобы установить html, указывающий на ваше изображение.

Значение html должно содержать

<img src='your path on disk'> 

теги.

Мне это кажется проще, чем реализация протокола.

person O.C.    schedule 10.06.2011
comment
обратите внимание, что это будет работать, только если вы добавите page->settings()->setAttribute(QWebSettings::LocalContentCanAccessFileUrls,true); page->settings()->setAttribute(QWebSettings::AutoLoadImages,true);, где страница — это страница QWebView() - person Raiv; 10.06.2011
comment
Это также означает, что он должен скопировать все свои изображения в файловую систему. Это может быть хорошо, но у ОП могут быть веские причины хранить их в БД. - person Paul Dixon; 13.06.2011