Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python wnck在pdb.set_trace()之后才返回任何数据_Python_Gnome_Window Managers_Wnck - Fatal编程技术网

python wnck在pdb.set_trace()之后才返回任何数据

python wnck在pdb.set_trace()之后才返回任何数据,python,gnome,window-managers,wnck,Python,Gnome,Window Managers,Wnck,在Ubuntu Linux/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()) **

在Ubuntu Linux/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())
** (windowlist.py:4501): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'

** (windowlist.py:4501): WARNING **: Trying to register gtype 'WnckWindowActions' as enum when in fact it is of type 'GFlags'

** (windowlist.py:4501): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'
[]
> /home/rory/personal/diriu/windowlist.py(12)<module>()
-> pprint(screen.get_windows())
(Pdb) c
[<wnck.Window object at 0xb61db0cc (WnckWindow at 0x992c000)>,
 <wnck.Window object at 0xb61db0f4 (WnckWindow at 0x992c0a8)>,
 <wnck.Window object at 0xb61db11c (WnckWindow at 0x992c150)>,
 <wnck.Window object at 0xb61db144 (WnckWindow at 0x992c1f8)>,
 <wnck.Window object at 0xb61db16c (WnckWindow at 0x992c2a0)>,
 <wnck.Window object at 0xb61db194 (WnckWindow at 0x992c348)>,
 <wnck.Window object at 0xb61db1bc (WnckWindow at 0x992c3f0)>,
 <wnck.Window object at 0xb61db1e4 (WnckWindow at 0x992c498)>,
 <wnck.Window object at 0xb61db20c (WnckWindow at 0x992c540)>,
 <wnck.Window object at 0xb61db234 (WnckWindow at 0x992c5e8)>,
 <wnck.Window object at 0xb61db25c (WnckWindow at 0x992c690)>,
 <wnck.Window object at 0xb61db284 (WnckWindow at 0x992c738)>]
输出如下:

#! /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())
** (windowlist.py:4501): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'

** (windowlist.py:4501): WARNING **: Trying to register gtype 'WnckWindowActions' as enum when in fact it is of type 'GFlags'

** (windowlist.py:4501): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'
[]
> /home/rory/personal/diriu/windowlist.py(12)<module>()
-> pprint(screen.get_windows())
(Pdb) c
[<wnck.Window object at 0xb61db0cc (WnckWindow at 0x992c000)>,
 <wnck.Window object at 0xb61db0f4 (WnckWindow at 0x992c0a8)>,
 <wnck.Window object at 0xb61db11c (WnckWindow at 0x992c150)>,
 <wnck.Window object at 0xb61db144 (WnckWindow at 0x992c1f8)>,
 <wnck.Window object at 0xb61db16c (WnckWindow at 0x992c2a0)>,
 <wnck.Window object at 0xb61db194 (WnckWindow at 0x992c348)>,
 <wnck.Window object at 0xb61db1bc (WnckWindow at 0x992c3f0)>,
 <wnck.Window object at 0xb61db1e4 (WnckWindow at 0x992c498)>,
 <wnck.Window object at 0xb61db20c (WnckWindow at 0x992c540)>,
 <wnck.Window object at 0xb61db234 (WnckWindow at 0x992c5e8)>,
 <wnck.Window object at 0xb61db25c (WnckWindow at 0x992c690)>,
 <wnck.Window object at 0xb61db284 (WnckWindow at 0x992c738)>]
**(windowlist.py:4501):警告**:试图将gtype“WnckWindowsState”注册为枚举,而实际上它是“GFlags”类型
**(windowlist.py:4501):警告**:试图将gtype“WnckWindowActions”注册为枚举,但实际上它是“GFlags”类型
**(windowlist.py:4501):警告**:试图将gtype“WnckWindowMoveResizeMask”注册为枚举,但实际上它是“GFlags”类型
[]
>/home/rory/personal/diriu/windowlist.py(12)()
->pprint(screen.get\u windows())
(Pdb)c
[,
,
,
,
,
,
,
,
,
,
,
]
第一个
get\u windows()
调用返回一个空列表
[]
。第二个
get\u windows()
调用返回打开的窗口列表。在
pdb
中,我只按
c
继续,不执行任何操作(在pdb中)

如果我注释掉
pdb
,则两个
get\u windows()
调用都返回
[]
。如果在pdb之前多次重复
get_windows()
调用,则什么都没有。如果在pdb之后多次重复
get_windows()
调用,我会不断得到完整的列表


为什么此呼叫仅在pdb为空后才起作用?如果没有pdb,我如何使其工作?

我不使用wnck,但我认为在pdb情况下,两次调用之间的时间足以使窗口初始化到windows列表。在调用获取窗口之前,尝试延迟使用sleep。

文件so-wnck.py(来自)

python so-wnck.py

**(so-wnck.py:2367):警告**:试图将gtype“wnckWindowsState”注册为枚举,但实际上它是“GFlags”类型
**(so wnck.py:2367):警告**:试图将gtype“WnckWindowActions”注册为枚举,而实际上它是“GFlags”类型
**(so wnck.py:2367):警告**:试图将gtype“WnckWindowMoveResizeMask”注册为枚举,但实际上它是“GFlags”类型
[,
, 
, 
, 
,
, 
]

我使用了长达10秒的睡眠时间,没有任何变化。当前pdb系统在10秒内返回有效值。