【问题标题】:Is it possible to get the scaling percentage of the screen resolution?是否可以获得屏幕分辨率的缩放百分比?
【发布时间】:2021-04-27 14:20:00
【问题描述】:

我正在尝试根据分辨率调整我的窗口应用程序的大小。 正如我们在屏幕截图中看到的那样,我的计算机分辨率为 3840 x 2160,缩放比例为 300%。 使用此代码:

from win32api import GetSystemMetrics
import win32con

print("Width =", GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN))
print("Height =", GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN))

我明白了:

Width = 1280
Height = 720

因为缩放

【问题讨论】:

  • 获取相同的值
  • 据我所知缩放与分辨率无关
  • 问题是,如果我在尝试使用我显示的代码获得分辨率时使用缩放 300%,我将获得 3840/3= 1280 x 2160/3 = 720。对于分辨率1920 x 1080,缩放比例为 150%,我再次得到 1280 x 720 而不是 1920 x 1080。@BakkarBakkar
  • win32 api/con 只取“屏幕”的大小,在您选择的缩放比例下,其面积等于您的。如果要针对给定的缩放比例进行调整,只需将 api/con 结果乘以适当的因子(在本例中为 3)。

标签: python python-3.x windows screen-resolution


【解决方案1】:

编辑:我在这里遇到了实际值:device pixel ratio

如果您的比例为 150%,您的像素比率将为 1.5

from PySide6 import QtGui

screen = QtGui.QGuiApplication.primaryScreen()
scaled_pixel_ratio = screen.devicePixelRatio()

【讨论】:

    猜你喜欢
    • 2016-07-27
    • 2016-10-21
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2015-06-29
    • 2023-04-11
    相关资源
    最近更新 更多