【发布时间】:2012-10-08 04:00:01
【问题描述】:
我需要找到窗口的位置和大小,但我不知道怎么做。例如,如果我尝试:
id.get_geometry() # "id" is Xlib.display.Window
我得到这样的东西:
data = {'height': 2540,
'width': 1440,
'depth': 24,
'y': 0, 'x': 0,
'border_width': 0
'root': <Xlib.display.Window 0x0000026a>
'sequence_number': 63}
我需要找到窗口位置和大小,所以我的问题是:“y”、“x”和“border_width”总是0;更糟糕的是,“高度”和“宽度”在没有窗口框架的情况下返回。
在本例中,在我的 X 屏幕上(其尺寸为 4400x2560),我预计 x=1280, y=0, width=1440, height=2560。
换句话说,我正在寻找 python 等价物:
#!/bin/bash
id=$1
wmiface framePosition $id
wmiface frameSize $id
如果您认为 Xlib 不是我想要的,请随意在 python 中提供非 Xlib 解决方案,如果它可以将窗口 id 作为参数(如上面的 bash 脚本)。在 python 代码中使用 bash 脚本的输出的明显解决方法感觉不对。
【问题讨论】:
-
感谢 Andrey Sidorov 的回答,我解决了我的问题。这是一个演示解决方案的非常简单的脚本:print_frame_geometry_of_all_windows.py.