【问题标题】:Python tkinter- Conpensate Windows Display ScalingPython tkinter- 补偿 Windows 显示缩放
【发布时间】:2023-02-18 15:21:22
【问题描述】:

我的程序有一个固定分辨率的主窗口,我不希望它可以调整大小,但是一些显示器非常小的 PC 会有很高的显示缩放设置,所以程序不能显示整个窗口,有没有办法提取这个缩放因子所以我可以补偿吗?或者有没有办法编译 exe,使其不根据设置缩放?

【问题讨论】:

  • 你为什么不希望它可以调整大小?用户应该能够控制他们窗口的大小,除非您正在制作类似信息亭的应用程序。

标签: python tkinter display scaling


【解决方案1】:

如果我理解正确,您的问题的答案如下:


fixedWidth = 1920
fixedHeight = 1080

user_monitor = get_monitors()
scale = user_monitor.width / fixedWidth

if user_monitor.widht < fixedWidth:
    fixedWidth = user_monitor.width
if user_monitor.height < fixedHeight:
    fixedHeight = user_monitor.height

当然,你必须乘以scale其余的程序大小来缩小你的程序

【讨论】:

  • 谢谢你的回复!但这不完全是我的意思,我的显示器是 3240*2160,窗口缩放设置是 200,所以如果打开一个设置为 500*500 的窗口,它实际上会在我的屏幕上显示为 1000*1000,如果缩放设置越高,窗口会显得更大,一些小部件被隐藏,而屏幕分辨率始终为 3240*2160!那么,是否有可能获得此缩放设置并相应地减小尺寸?
【解决方案2】:

您可以使用 ctype 获取比例因子,然后根据它修改尺寸。

import ctypes

scale_factor = ctypes.windll.shcore.GetScaleFactorForDevice(0)

如果比例因子 = 150%,这将返回 150。除以 100 可能很有用,这样您就可以在应用程序中使用百分比。

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2022-11-10
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多