用python Xlib重命名窗口

时间:2012-04-03 06:28:43

标签: python xlib

使用Xlib模块进行python,我已经设法通过分别调用configure()和destroy()以及display.sync()来移动,调整大小和销毁窗口。

但是,我似乎无法重命名现有的窗口。以下代码输出'foo':

window.set_wm_name('foo')
window.set_wm_icon_name('foo')
print window.get_wm_name()

这表明对象正确更新。但是,在我的屏幕上,即使在调用display.sync()之后,窗口的标题也完全没有变化。我是否正确使用了set_wm_name函数,是否应该根据这类任务使用它们?

1 个答案:

答案 0 :(得分:0)

我知道这个答案非常晚,但也许有人会发现它很有用

from  Xlib.display import Display
from Xlib.Xatom import STRING


display = Display()
root = display.screen().root
#view the current WM_NAME
a = root.get_full_property(display.intern_atom('_NET_WM_NAME'), STRING)
print a.value
#Actualy change WM_NAME
root.change_property(display.intern_atom('_NET_WM_NAME'), STRING, 8, '  MyApp')


#read the name again
b = root.get_full_property(display.intern_atom('_NET_WM_NAME'), STRING)
print b.value

我一直无法获得window.get_wm_name()...我确定我做错了什么,但这也很有效:)