2017-12-01 27 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))