【发布时间】:2009-10-24 00:49:18
【问题描述】:
我尝试过使用:
win.configure(stack_mode=X.TopIf)
win.set_input_focus(X.RevertToParent, X.CurrentTime)
但是,即使我的窗口管理器没有任何焦点丢失预防措施,这也不起作用,有人知道另一种方法吗? Xlib 与否。
【问题讨论】:
我尝试过使用:
win.configure(stack_mode=X.TopIf)
win.set_input_focus(X.RevertToParent, X.CurrentTime)
但是,即使我的窗口管理器没有任何焦点丢失预防措施,这也不起作用,有人知道另一种方法吗? Xlib 与否。
【问题讨论】:
有一个名为wmctrl 的命令行工具允许您与兼容 EWMH/NetWM 的 X 窗口管理器进行交互。
例如,
wmctrl -l
列出由窗口管理器管理的所有窗口,并且
wmctrl -a Mozilla
激活列表中标题中包含字符串“Mozilla”的第一个窗口。 还有其他选择窗口的方法;以上只是一个例子。
wmctrl 也可以让您移动和调整窗口大小。
【讨论】:
试试这个:
window=Display().screen().root.query_pointer().child
window.set_input_focus(X.RevertToParent, X.CurrentTime)
window.configure(stack_mode=X.Above)
【讨论】:
display.sync() 有助于强制它,我需要这条线用于 Ubuntu 上的 Xorg
也许这是解决方案:
[Xlib] Force Raise/Map/Focus a given Window
给定的解决方案(按照线程)涉及使用 wnck,它在 Python 中是 Gtk+ 绑定的一部分。
【讨论】: