2017-12-01 25 views
1

これはQTreeViewでトップレベルのルートアイテムを展開していないようだ、なぜ私は理解していない:QTreeview項目

# clear existing treeview data 
model = self.treeview.model().sourceModel() 
model.clear() 

# add treeview items here 

# expand root level items 
root = model.invisibleRootItem() 
index = root.index() 
for i in range(root.rowCount()): 
    item = model.indexFromItem(model.item(i,0)) 
    self.treeview.expand(item) 
    self.treeview.setExpanded(item, True) 
    print 'expanded' 

答えて

2

プロキシモデルを使用している場合は、必要があり、ソースモデルの索引ではなく、提供する索引を使用します。だから、これを行うのいずれか:

proxy = self.treeview.model() 

for row in range(proxy.rowCount()): 
    index = proxy.index(row, 0) 
    self.treeview.expand(index) 

またはこの:

proxy = self.treeview.model() 
model = proxy.sourceModel()  

for row in range(model.rowCount()): 
    index = model.index(row, 0) 
    self.treeview.expand(proxy.mapFromSource(index)) 
関連する問題