python - 使用 Xlib 在 python 中获取窗口位置和大小

标签 python xlib

我需要找到窗口的位置和大小,但我不知道该怎么做。例如,如果我尝试:

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 脚本输出的明显解决方法感觉不对。

最佳答案

您可能正在使用重新设置父级的窗口管理器,并且由于此 id 窗口的 x 和 y 为零。检查父窗口的坐标(即窗口管理器框架)

关于python - 使用 Xlib 在 python 中获取窗口位置和大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775136/

相关文章:

c - 如何退出xlib的XNextEvent的阻塞

c++ - 除非调整大小,否则 XLib 应用程序不会重绘

gstreamer appsrc 网络视频流

python - 为什么我的 JupyterLab 笔记本代码控制台没有按应有的方式显示 'command history'?

python - MAC | Python 脚本运行良好,在终端插入 Mysql 表但无法作为 Cron 作业运行 |苹果

python - 使用 python MySQLdb 连接正确处理异常

python - 将数据帧转换为记录数组(并将对象转换为字符串)

python - Python 上的列表索引超出范围。没有任何作用

c - 客户端退出后 XChangeProperty 无效

c++ - 如何在 x11 中获取屏幕像素的颜色