独自のリストストアを管理するカスタムgtk.treeview
ラッパークラスがあります。このクラスには、リストストアのデータを消去し、新しいデータで上書きする独自のメソッドがあります。メモリ消費量をテストする目的で、ツリービューは8列に50,000行の整数を表示するだけです。GtkTreeView treestoreメモリ割り当て
私は、リストストアをデータで更新する関数を呼び出すたびに、アプリケーションが使用するメモリが増えているように見え、データが消去された後は元に戻りません。
class TreeViewPrototype(gtk.TreeView):
def __init__(self):
gtk.TreeView.__init__(self)
self.columns = [str, str, str, str, str, str, str, str]
# Initialize Treeview and TreeViewColumns here
# Setup columns
self.liststore = gtk.ListStore(*self.columns)
self.set_model(self.liststore)
def set_list_model(self):
self.liststore.clear()
self.liststore = gtk.ListStore(*self.columns)
# Populate liststore with dummy data
for i in range(50000):
row = []
for j in range(len(self.columns)):
row.append("%d[%d]"%(i,j))
self.liststore.append(row)
私が新しいものとliststoreを上書きするとき、それはデータのメモリーを割り振り解除決して、すべての呼び出しがset_list_modelするように私には思える:
は、ここに私の単純なツリービューの実装です。私は間違って何をしていますか?
ツリービューのデータストアとしてリストストアを設定するにはどうすればよいですか? – XORcist
@möter申し訳ありませんが、私は無意識にそれを残しました。それを修正するために編集されました。 – Wes
set_list_modelの新しいListStoreインスタンスにデータストアを再設定していないようです。 – XORcist