在CefPython上的运行时更改auto_zooming参数

时间:2018-09-10 15:47:19

标签: python wxpython zoom embedded-browser cefpython

我有一个Flask应用,可在localhost:3000上呈现某些页面。为了在每台计算机上正确显示此页面,我使用了铬浏览器(cefpython3的WXpython示例,做了很小的改动: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 :(得分:1)

在初始化CEF之前不能检测缩放级别吗?

auto_zooming选项将调用SetBrowserDpiSettings C ++函数。它在50毫秒的定时器中不断设置缩放级别。您可以在纯Python中实现类似的功能。它使用四个函数,它们的Python等效项为:Browser.SetZoomLevelBrowser.GetZoomLevelcef.DpiAware.GetSystemDpicef.PostDelayedTask

在此处查看C ++函数源代码:

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