1
我試圖自動檢查QTreeView中的節點(例如,當用戶加載一些數據時)。手動複選框滴答功能工作正常。我搜索了樹的相關項目按http://rowinggolfer.blogspot.com.au/2010/05/qtreeview-and-qabractitemmodel-example.html即:QAbstractItemModel自動設置檢查狀態
在模型:
def searchModel(self, person):
def searchNode(node):
for child in node.childItems:
if person == child.person:
index = self.createIndex(child.row(), 0, child)
return index
if child.childCount() > 0:
result = searchNode(child)
if result:
return result
node_index = searchNode(self.parents[0])
return node_index
def find_GivenName(self, fname):
app = None
for person in self.people:
if person.fname == fname:
app = person
break
if app != None:
index = self.searchModel(app)
return (True, index)
return (False, None)
然後我通過相關節點在模型中設置其檢查狀態如
model.setData(node_index, 2, QtCore.Qt.CheckStateRole)
在型號中:
def setData(self, index, value, role):
if role == Qt.CheckStateRole:
row = index.row()
self.args[row].checked = value
return True
但是相關節點的複選框沒有得到檢查。有任何想法嗎?