3

データにPyGTKTreeView(リストとして)を使用しています。リストを調べて、オンデマンドでより多くのデータをロードする方法はありますか?

200000レコードのデータベーステーブルがあります。アプリケーションの開始時に、テーブルから200レコードをロードします。スクロールしたら、treeViewにさらにデータをダウンロードします。

4

2 に答える 2

3

次のことができると思います:

  1. モデルに空の行を追加してください。GtkListStoreを使用する必要があると思います

  2. ツリービュー セル レンダラーの場合、データ関数を定義します。

  3. データ関数で、現在のモデル行がロードされているかどうかを確認し、ロードされていない場合は SQL からロードします。ここでキャッシュを使用して、一度に複数の行をロードできると思います。

以下は、データ関数の設定方法の例です。

cell = gtk.CellRendererText()        
column = gtk.TreeViewColumn('column0', cell, text=0)   
column.set_cell_data_func(cell, self.load_data)
self.list.append_column(column)

....

def load_data(self, column, cell, model, iter):
    # load data for the given model row
    print 'load data ' + model.get_value(iter, 0)

これが役に立てば幸いです、よろしく

于 2011-03-02T03:38:00.827 に答える