我有一个Flask应用,可在localhost:3000上呈现某些页面。为了在每台计算机上正确显示此页面,我使用了Chrome浏览器(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--'之类的东西。
提前致谢,
里卡多
最佳答案
初始化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