1

我有一个 Flask 应用程序,可以在 localhost:3000 上呈现一些页面。为了在每台计算机上正确显示此页面,我使用 chromium 浏览器(基本上是来自 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 - -'的东西。

在此先感谢,里卡多

4

1 回答 1

1

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

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

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

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

于 2018-09-10T18:12:02.027 回答