(Python 2.7)获取UI标题栏大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Python 2.7)获取UI标题栏大小相关的知识,希望对你有一定的参考价值。
前提
我使用参数some program.exe
启动-width 640 -height 480
,这会导致程序以指定的大小启动。
然后我想验证程序是否以指定的大小启动,所以使用qazxsw poi我计算了窗口大小:
win32gui.GetWindowRect()
大小不匹配。我认为这很可能是由于标题栏。
我的问题是:如何获得标题栏的大小?
注意:我需要知道标题栏的大小以验证程序大小,因此使用>>> r = win32gui.GetWindowRect(HWND)
>>> w = r[2] - r[0]
>>> h = r[3] - r[1]
>>> print w,h
646 509
并将其值减去预期大小不是解决方案。
图片来澄清我的问题
win32gui.GetWindowRect()
补充问题
不同的操作系统是否有不同的标题栏和边框大小?
根据我自己的计算(未经官方确认的信息)在默认的Windows 10中,边框的大小是,标题栏的高度是3px
。有人可以确认/谴责这些信息吗?
选项1:你可以硬编码并从左下角和左下角给它固定的偏移量为8px,从顶部给出31px,从顶部删除不可见的边框和标题栏。
但是这样当你改变windows缩放比例时,它将不再正常工作,如果你编码自己使用这个程序,这个选项很棒。如果您希望程序与多个秤兼容,请尝试选项2。
选项2:
您可以使用26px
来获取没有标题栏和不可见边框的窗口大小,然后您可以使用它来计算偏移量
GetClientRect
这里newRect是没有标题栏或不可见边框的矩形
资料来源: rect = win32gui.GetWindowRect(hwnd)
clientRect = win32gui.GetClientRect(hwnd)
windowOffset = math.floor(((rect[2]-rect[0])-clientRect[2])/2)
titleOffset = ((rect[3]-rect[1])-clientRect[3]) - windowOffset
newRect = (rect[0]+windowOffset, rect[1]+titleOffset, rect[2]-windowOffset, rect[3]-windowOffset)
GetWindowRect
以上是关于(Python 2.7)获取UI标题栏大小的主要内容,如果未能解决你的问题,请参考以下文章