pygtk を使用して Maemo プラットフォーム用のアプリケーションを作成していますが、ツリー ビューのレンダリング速度が問題のようです。アプリケーションはメディア コントローラーなので、UI でトランジション アニメーションを使用しています。これらのアニメーションは、UI 内を移動するときにコントロールをスライドさせて表示します。ツリー コントロールの問題は、遅いことです。
画面の中央でウィジェットを移動するだけではそれほど遅くはありませんが、セルが露出している場合はフレームレートが実際に低下します. これをより厄介にしているのは、露出されている唯一の領域が行ラベルを持つタイトル行である場合、フレームレートは制御下にあることです.
このことから判断すると、1 行のピクセルが表示されるたびに、GTK ツリー ビューが完全なセルを再度描画していると思われます。ウィジェットの一部が画面外にある場合でも、ウィジェット全体を何らかのバッファに描画し、アニメーション時にバッファを使用してウィジェットを描画するように何らかの方法で強制する方法はありますか?
また、ビューポートを使用して上にスクロールすることと、レイアウト パネルを使用してウィジェットを下に移動することに違いはありますか? Viewport の方が速いと想像していましたが、両方のバージョンを試してみたところ、実際の違いは見られませんでした。
これは、必ずしも GTK が作成された目的ではないことを理解しています。私が試した他の代替手段はpygameですが、ウィジェットベースのイベント処理が組み込まれた高レベルの実装を好むでしょう。また、pygtkにはWindowsとウィンドウで実行できるという利点があるため、開発が容易になります。