我正在使用pygtk为Maemo平台编写一个应用程序,并且树视图的渲染速度似乎是一个问题。由于应用程序是媒体控制器,因此我在UI中使用了过渡动画。这些动画在围绕UI移动时将控件滑动到视图中。树控件的问题是速度慢。加速GTK树视图
只是在屏幕中间移动小部件并不是那么慢,但如果细胞暴露,帧速率真的下降。是什么让这更令人讨厌的是,如果唯一被曝光的领域是带有行标签的标题行,则帧率仍然在控制之下。
由此判断,我怀疑GTK树视图是每次单行像素曝光时再次绘制完整单元格。有没有办法强制GTK将整个小部件绘制到某个缓冲区中,即使它的某些部分不在屏幕上,然后在动画时使用缓冲区绘制小部件?
使用Viewport和滚动并使用布局面板和向下移动小部件之间还有区别吗?我曾想象过Viewport速度更快,但当我尝试使用两种版本时,我没有看到真正的区别。
我知道这不一定是GTK创建的。我试过的其他选择是pygame,但我更喜欢一些具有基于窗口小部件的事件处理内置的更高级别的实现。此外,pygtk具有在Windows和窗口中运行的好处,因此开发更容易。