我用的是 wmctrl -lp
试图找到一个与一个 tkinter
GUI 窗口。然而,看起来 tkinter 窗口并没有与 pid 相关联。
0x06400010 0 0 N/A tk
使用 xprop
,它看起来像 _NET_WM_PID
属性没有设置。
但是,我找不到任何方法来获得这个属性。tkinter
自动设置,或者从我的python代码中明确设置。
背景是,我有一个脚本,用于查找某个进程 "拥有 "的任何窗口,或其子进程。但是 tkinter 窗口不能被这个脚本找到,因为该脚本认为它与创建窗口的 python 脚本的 pid 没有关联。
非常感谢任何帮助。
似乎只有当我在bash脚本中运行python脚本时才会出现这个问题。
所以如果我有一个bash脚本 gui_from_bash_script.sh
其中说:
#!/bin/bash
python my_gui.py
...然后我就跑 ./gui_from_bash_script.sh
那么我就会遇到这个问题。
如果我只是运行 python my_gui.py
终端,但我没有得到这个问题。
我设法解决了这个问题,在建立 root
窗口。
root = tk.Tk()
root.client(socket.gethostname()) # THIS LINE HERE
我还不明白为什么这样做会有区别,但似乎已经做到了。
wmctrl -lp
现在显示。
0x06400010 0 1234 my-host-name tk