【发布时间】:2016-01-18 19:22:56
【问题描述】:
我正在尝试根据窗口的宽度和高度来定位我的窗口。在 Windows 上,wm_geometry、winfo_width 和 winfo_height 报告的窗口大小是 客户区 的大小,即没有边框的窗口大小。由wm_geometry、winfo_x 和winfo_y 报告的窗口位置以及使用wm_geometry 设置的位置是窗口左上角的位置包括边框。
这意味着当我尝试使窗口在屏幕上居中时,屏幕上的位置明显太低。
我不想硬编码边框粗细,因为它可能会有所不同。
是否可以使用 Python/tkinter 在 Windows 上获取或推断窗口边框的大小?
【问题讨论】:
-
可能有更好的解决方案,但也许你可以通过使用 root.attributes('-fullscreen', True) 最大化窗口,获取框架的几何形状和屏幕分辨率然后您应该能够计算窗口边框的大小(我认为..)。我不确定你是否可以在不实际显示在屏幕上的情况下做到这一点。
-
@anderswb 窗口最大化时边框的粗细不一样。顶部边框明显变薄,左、右和下边框消失了。 (这是在 Windows 8 上)
-
另一个想法。同样,我还没有尝试过,但我认为您必须使用 tkinter 之外的一些东西。像建议here这样的东西怎么样。
-
@anderswb 感谢您的链接,我会考虑的
-
我认为在使用该方法显示之前可能无法获取窗口大小。不确定这是否有问题。