python - Tkinter 不会将窗口与 pid 关联
问题描述
我正在使用来尝试查找与GUI 窗口wmctrl -lp
关联的进程 ID 。tkinter
但是,看起来 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
推荐阅读
- magento - Magento 2.4 升级错误 - 不允许排序
- javascript - 脚本显示指定整数变量中的最大数字
- c# - 当我尝试将交换链纹理中的渲染内容读取到某些 pc 上的字节 [] 中时,返回的数组大小比预期的大
- javascript - Google脚本仅在某些日期添加带有日期的行
- amazon-web-services - 获取 amazon s3 文件夹大小 react-native
- python - 在 kivy 窗口中拖动文件并加载主类函数不会添加小部件
- microsoft-graph-api - 通过 Microsoft 图形 API 访问用户信息
- excel - 为工作表中的所有单元格应用一般条件格式
- docker - 在 wildlfy 数据源定义(文件)中使用环境变量
- javascript - JWPlayer 在视频中显示直播消息