gpt4 book ai didi

windows - 在高 dpi Windows 平台上自动重新缩放应用程序?

转载 作者:可可西里 更新时间:2023-11-01 12:17:23 24 4
gpt4 key购买 nike

我正在编写一个需要在高 dpi Windows(192dpi 而不是 96dpi)上运行的 Qt 应用程序。

不幸的是,Qt 框架还不支持高 dpi(至少在 Windows 上),所以我的应用程序及其所有元素看起来只有它应有的一半大小。

有什么方法可以强制/模拟 Windows 对此类应用程序的自动升级?

最佳答案

使用固定坐标和大小的应用程序在高 DPI 分辨率下看起来会很小。虽然即使使用布局也存在一些关于元素和字体大小和边距的问题。幸运的是,自 Qt 5.4 以来支持高 DPI 显示,因为有很多 high-DPI issue fixes .

Windows 上的应用程序可以采用以下“DPI 感知”级别之一(来自 Qt 文档):

  • DPI Unaware: This level has been introduced in Windows-Vista. Windows will pretend to the application that it is running on a standard display of 96 DPI of 1920x1080 and scale the application accordingly. It is intended to accommodate older applications designed for low DPI displays. Some artifacts may result from this type of scaling.
  • System-DPI Aware: This level has been introduced in Windows-Vista. It differs from Per-Monitor DPI Aware only when multiple monitors are connected. Windows will calculate a scaling suitable for all connected monitors.
  • Per-Monitor DPI Aware: This level has been introduced in Windows 8.1. Windows does not perform any scaling at all.

它还指出:

Qt applications by default are Per-Monitor DPI Aware on Windows 8.1 or System-DPI Aware on older versions of Windows. As of Qt 5.4, the level can be specified by passing a parameter to the platform plugin (see Using qt.conf):

<application> -platform windows:dpiawareness=0,1,2

您可以阅读更多信息here .

通常要在高 DPI 显示器上拥有良好的 UI,请考虑以下事项:

  • 使用最新版本的Qt
  • 使用布局并避免固定尺寸(除非您自己计算缩放比例)
  • 根据您的应用程序需要进行适当的 DPI 相关设置,例如,如果您使用 QPainter 和像素图,请设置 Qt::AA_UseHighDpiPixmaps 属性,或计算缩放比例用于在特殊情况下调整某些元素大小。

关于windows - 在高 dpi Windows 平台上自动重新缩放应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com