(四 封装-5)pyqt5 font size changed

2018-03-23  本文已影响132人  刘月玮

发现与明确问题

在我们跨平台运行 QT 工具的时候,发现如下一类问题:


image.png

首先,我们的问题不是在于要自适应调整控件的大小,在不同的平台上,我们要求自己的页面、控件大小保持一致。

我们真实准确的问题在于:基于控件大小一定的前提下,使得不同平台上的字体显示肉眼可见为一致的;不要我们人为根据平台去调整 font size。

探寻问题

为什么字体大小不一致呢?

因为 DPI 一类的问题。同样一个字,高分辨率上的屏幕显示得更小。

解决问题

解决问题的思路

比如我们在 mac 端(高分辨率)工作,但封装出来的 qt 软件需要在 windows 电脑上工作,那么:

方案一

在我们的 project 中就需要增加一个 python 文件,改变 windows 电脑(低分辨率)上的配置。

方案二

激活 EnableHighDpiScaling

解决问题的实际落地方案

方案一

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

方案二

#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication app(argc, argv);   
    return app.exec();
}

参考链接

  1. Changing DPI scaling size of display make Qt application's font size get rendered bigger
  2. PyQt font size changes with windows display configurations
  3. Automatic rescaling of an application on high-dpi Windows platform?
  4. How to set environment variables in Python
  5. Windows: Fix High DPI issues
  6. Automatic rescaling of an application on high-dpi Windows platform?
  7. Python PyQt how to set environment variable for QProcess?
  8. Document: Environment Variables
上一篇下一篇

猜你喜欢

热点阅读