Изменить параметр auto_zooming во время выполнения на cefpython - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть приложение Flask, которое отображает некоторую страницу на localhost: 3000. Чтобы правильно отобразить эту страницу на каждом компьютере, я использую браузер Chromium (в основном пример WXpython из cefpython3 с небольшими изменениями: https://github.com/cztomczak/cefpython/blob/master/examples/wxpython.py). Однако на некоторых компьютерах с другим уровнем разрешения / масштабирования мне приходится повторно запускать код с другое значение параметра auto_zooming для корректного отображения страницы:

...

zoom = '0'
settings = {'debug': False, 'auto_zooming': zoom} 
cef.Initialize(settings=settings)

...

Мой вопрос: есть ли способ изменить уровень масштабирования браузера Cefpython без необходимости перезапуска кода каждый раз, когда я хочу изменить масштабирование? Я думал о чем-то вроде «ctrl - +» или «ctrl - -».

Спасибо заранее, Рикардо

1 Ответ

0 голосов
/ 10 сентября 2018

Не можете ли вы определить уровень масштабирования до инициализации CEF?

Опция auto_zooming вызовет функцию SetBrowserDpiSettings C ++. Он устанавливает уровень масштабирования постоянно в таймере 50 мс. Вы можете реализовать аналогичную функциональность в чистом Python. Он использует четыре функции и их эквиваленты Python: Browser.SetZoomLevel, Browser.GetZoomLevel, cef.DpiAware.GetSystemDpi и cef.PostDelayedTask.

См. Исходный код функции C ++ здесь:

https://github.com/cztomczak/cefpython/blob/6f5bf081fec19647e1860bb3e0f3638c02bb9d11/src/client_handler/dpi_aware.cpp#L163

...