PyQt5 为不同的显示器调整应用程序的大小



我正在使用PyQt5和Python 3.6.4为程序设计UI。它是在 720p 显示器上制作的,但现在在 4k 显示器上使用相同的代码,除了文本之外,一切都很小。我将如何调整整个应用程序的大小以在所有显示器上看起来相同:(720p、1080p、4k 等) 该程序将通过编译python代码创建的可执行文件在Windows上运行。 干杯

简单的 1 行修复,适合任何需要的人

os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1"

这在某种程度上取决于系统,因此如果您提到目标平台会有所帮助。

因为 PyQt5 只是 Qt5 的包装器,我认为 Qt 手册中的高 DPI 显示器适用。引用相关位(但您应该阅读整件事):

为了使专为低 DPI 值设计的应用程序在高分辨率监视器上快速运行,请考虑其中一个缩放选项(让应用程序在 Windows 上以 DPI Unaware 身份运行,或将环境变量QT_AUTO_SCREEN_SCALE_FACTOR设置为"1"。但是,这些选项可能会导致一些缩放或绘制伪影。

从长远来看,应用程序应适应原封不动地运行:

  • 始终使用 QPainter 绘图 API 的 qreal 版本。
  • 与屏幕大小相关的窗口和对话框的大小。
  • 将布局和绘图代码中的硬编码大小替换为根据字体指标或屏幕大小计算的值。

在 shell 中,您可以执行以下操作:

$ export QT_AUTO_SCREEN_SCALE_FACTOR=1
$ python my_application.py

最新更新