销毁PyGTK窗口时挂起时间过长



我的PyGTK应用程序创建了第二个弹出窗口,用于显示结果的预览。这个窗口相当精细,表小部件嵌套三层,并由hbox填充,每个hbox在最底层包含一个Label。标签的总数可以达到数千个。我注意到,当我关闭这个窗口时,GTK变得非常忙于处理一些东西(用object添加的函数)。Idle_add不解析>10秒),我的应用程序的主窗口在这段时间变得无响应。即使有这么多小部件,我还是觉得很奇怪,为什么窗口要花这么长时间才能关闭,甚至比设置和显示的时间还要长。有什么办法可以减轻这种情况吗?(我尝试在另一个线程中创建和显示窗口,但显然对于GTK这是一个禁忌)

这个窗口需要多长时间才能显示?当它显示时,所有的小部件都是一次创建的吗?

您的问题可能是由于同时破坏了数千个小部件而引起的。或者通过一个冗长的操作来执行这些小部件的销毁。但是如果没有一些代码可以查看,可能会有成千上万的原因,所以ptomato说,使用profiler…

显然,这是由于我试图改变表格的背景色引起的——我设置了每个HBox(和Label)的背景色,这几乎是所有过度拆除时间的原因。我所要做的就是设置viewport的背景色,这些table包含在

中。

最新更新