Tkinter没有将一个窗口与一个pid关联起来

问题描述 投票:0回答:1

我用的是 wmctrl -lp 试图找到一个与一个 tkinter GUI 窗口。然而,看起来 tkinter 窗口并没有与 pid 相关联。

0x06400010  0 0                     N/A tk

使用 xprop,它看起来像 _NET_WM_PID 属性没有设置。

但是,我找不到任何方法来获得这个属性。tkinter 自动设置,或者从我的python代码中明确设置。

背景是,我有一个脚本,用于查找某个进程 "拥有 "的任何窗口,或其子进程。但是 tkinter 窗口不能被这个脚本找到,因为该脚本认为它与创建窗口的 python 脚本的 pid 没有关联。

非常感谢任何帮助。

EDIT: 更多奇怪的地方

似乎只有当我在bash脚本中运行python脚本时才会出现这个问题。

所以如果我有一个bash脚本 gui_from_bash_script.sh 其中说:

#!/bin/bash

python my_gui.py

...然后我就跑 ./gui_from_bash_script.sh那么我就会遇到这个问题。

如果我只是运行 python my_gui.py 终端,但我没有得到这个问题。

python tkinter tk window-managers wmctrl
1个回答
0
投票

我设法解决了这个问题,在建立 root 窗口。

root = tk.Tk()
root.client(socket.gethostname())   # THIS LINE HERE

我还不明白为什么这样做会有区别,但似乎已经做到了。

wmctrl -lp 现在显示。

0x06400010  0 1234   my-host-name tk
© www.soinside.com 2019 - 2024. All rights reserved.