Pull to refresh

Comments 16

что есть пример (ССЫЛКА) из поставки Qt 5

Саму ссылку забыли, а я пока пошел читать дальше ;)
Да я вообще забыл ссылки порасставлять на документацию (хотел как в кьютешных доках — чтобы все было ссылочками.

Исправлю эту ссылку в течении минуты.
Кстати, бага с рендером, видимо, связана с OS X, потому что QPainter и render() прекрасно работают на линуксе.
Вероятно, ибо base64 способ, аналогично, давал трэш. Наверняка, там дело чуток глубже, в самом модуле QtWebKit, а не в QtWebkitWidgets.
Я на работе реализовал для Qt 4 прямой интерфейс QNetworkManager -> WSGI, этакий Qt-шный WSGI контейнер для одесктопливания питонских веб-приложений без посредства вебсерверов, сокетов и тому подобной ерунды, с дополнительными фишками типа выдачи статических файлов, усунутых в базу SQLite etc. Могу сказать, что при учёте всех нюансов — кеширования, работы с флэшом, прочего — нервов было потрачено немало (как вам нравится кратковременная смена текущей папки процесса под виндой во время инициализации флэш-плагина?) Ну, в моём случае это ещё должно было взаимодействовать с питонским интерпретатором в отдельном треде, что тоже трудов добавило. Только вот мне всё это на github положить никто не позволит :(
Жалко, что такая работа пропадает в корнях рабочих проектах. Но в моей прокси, по-сути, такие сложные вещи не нужны, единственное что — это ssl. Не уверен, что там все идеально.
я немножко другую задачу делал, облегчал интерфейс одной страницы через webview выкидывал часть элементов из дерева=) (оставлял то что именно мне надо).
Может я что-то не так понял, но все же спрошу. Почему просто не получить список всех изображений со страницы по тому же селектору img, и в отдельном потоке (потоках) не сохранить их с помощью QNetworkRequest — QNetworkReply?
Вы не задумылись, что порой, веб-приложения отдают не только статику. Я довольно часто имею дело с такими скриптами: запрос — получили изображение, аналогичный — изображение не сходится.

Как пример, могу навести капчу. У вас есть ссылка /api/captcha.php?code=a8de3 и с каждым запросом изображения будут разные.
Кстати, а PyQt совместим с C++ версией кьюта?
А на PyQt вырезание куска отрендеренной страницы (область картинки) в 3 строки
captcha = br.webframe.findFirstElement('img#captcha')
captchaCoords = captcha.geometry().getCoords()
br.snapshot(captchaCoords).save('captcha.png')


Будет время — добавлю snapshot() в QWebElement
Да оно там (spynner) просто делается
if box:
        x1, y1, x2, y2 = box
        w, h = (x2 - x1), (y2 - y1)
        image0 = QImage(QSize(x2, y2), format)
        painter = QPainter(image0)
        self.webpage.mainFrame().render(painter)
        painter.end()
        image = image0.copy(x1, y1, w, h)
else:
        image = QImage(self.webpage.viewportSize(), format)
        painter = QPainter(image)
        self.webpage.mainFrame().render(painter)
        painter.end()
return image
Вот эта реализация сейчас делается вручную в плюсовом кьюте
Sign up to leave a comment.

Articles