【发布时间】:2023-02-18 15:21:22
【问题描述】:
我的程序有一个固定分辨率的主窗口,我不希望它可以调整大小,但是一些显示器非常小的 PC 会有很高的显示缩放设置,所以程序不能显示整个窗口,有没有办法提取这个缩放因子所以我可以补偿吗?或者有没有办法编译 exe,使其不根据设置缩放?
【问题讨论】:
-
你为什么不希望它可以调整大小?用户应该能够控制他们窗口的大小,除非您正在制作类似信息亭的应用程序。
标签: python tkinter display scaling
我的程序有一个固定分辨率的主窗口,我不希望它可以调整大小,但是一些显示器非常小的 PC 会有很高的显示缩放设置,所以程序不能显示整个窗口,有没有办法提取这个缩放因子所以我可以补偿吗?或者有没有办法编译 exe,使其不根据设置缩放?
【问题讨论】:
标签: python tkinter display scaling
如果我理解正确,您的问题的答案如下:
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其余的程序大小来缩小你的程序
【讨论】:
您可以使用 ctype 获取比例因子,然后根据它修改尺寸。
import ctypes
scale_factor = ctypes.windll.shcore.GetScaleFactorForDevice(0)
如果比例因子 = 150%,这将返回 150。除以 100 可能很有用,这样您就可以在应用程序中使用百分比。
【讨论】: