PyQt5调整应用程序以适应不同的显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5调整应用程序以适应不同的显示相关的知识,希望对你有一定的参考价值。

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

答案

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

因为PyQt5只是Qt5的包装,我认为Qt手册中的High DPI Displays适用。引用相关位(但你应该阅读整篇文章):

为了快速获得在高分辨率监视器上运行的低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
另一答案

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

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

以上是关于PyQt5调整应用程序以适应不同的显示的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 中当窗口大小改变时,如何去调整控件的位置以适应窗口大小改变的思考

组合框没有正确调整大小以适应更大的字体大小

SwiftUI 调整矩形以适应内容

调整UILabel的大小以适应Word Wrap

如何调整窗体上的控件大小以适应不同的分辨率?

如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?