python wnck在pdb.set_跟踪()

2024-04-25 13:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在ubuntulinux/Gnome上,我尝试使用python的wnck绑定来获取所有打开窗口的列表。在

我的代码如下:

#! /usr/bin/python

from pprint import pprint
import wnck

screen = wnck.screen_get_default()

pprint(screen.get_windows())

import pdb ; pdb.set_trace()

pprint(screen.get_windows())

输出如下:

^{pr2}$

第一个get_windows()调用返回[],一个空列表。第二个get_windows()调用返回打开窗口的列表。在pdb中,我只按c继续,什么也不做(在pdb中)。在

如果我注释掉pdb,两个get_windows()调用return[]。如果我在pdb之前多次重复get_windows()调用,则没有任何内容。如果我在pdb之后重复多次get_windows()调用,我会不断得到一个完整的列表。在

为什么这个调用只在一个空的pdb之后才起作用?如果没有pdb我该怎么做?在


Tags: 代码fromimportdefault列表getbinwindows
2条回答

我不使用wnck,但我认为在pdb的情况下,两次调用之间的时间间隔足以使windows列表初始化。试着在呼叫前使用睡眠并延迟获取窗口。在

归档so-wnck.py公司(来自How might I grab all windows with a certain word in their titles?

import pygtk
pygtk.require('2.0')
import gtk
import wnck

screen = wnck.screen_get_default()
while gtk.events_pending():
    gtk.main_iteration()

windows = screen.get_windows()
print (windows)

python so-wnck.py

^{pr2}$

相关问题 更多 >

    热门问题