在销毁PyGTK窗口时过多的挂起时间

时间:2013-01-03 21:20:03

标签: python gtk

我的PyGTK应用程序创建一个辅助弹出窗口,用于显示结果预览。这个窗口相当复杂,Table小部件嵌套了三个深度,并由HBoxes填充,每个HBox包含一个最低级别的Label。标签总数可以达到数千。我注意到当我关闭这个窗口时,GTK变得非常忙于处理某些东西(gobject.idle_add添加的功能不能解析为> 10秒)并且我的应用程序的主窗口在这段时间内没有响应。即使有这么多的小部件,我觉得窗户应该花很长时间才能关闭,甚至比设置和显示的时间更长。有什么方法可以缓解这种情况吗? (我尝试在另一个线程中创建和显示窗口,但显然使用GTK这是禁止的)

2 个答案:

答案 0 :(得分:1)

该窗口出现多长时间?显示时是否一次创建所有小部件?

您的问题可能是由于数千个小部件同时被破坏造成的。或者通过漫长的动作执行那些小部件的破坏。但是如果没有一些代码可以看,可能有数千个原因,所以ptomato说,使用分析器......

答案 1 :(得分:0)

显然这是因为我试图改变表格的背景颜色 - 我设置了每个HBox(和标签)的背景颜色,这几乎是所有过度拆解时间的原因。我所要做的就是设置包含在表中的视口的背景颜色。