У меня есть проект, в котором мне нужно изменить выделение виджета дерева в коде. Это нужно сделать после того, как я уберу дерево и снова заполню его.
Я пытаюсь пометить соответствующий элемент как "выбранный", пока добавляю его. Это работает для узлов корневого уровня. Но для дочерних узлов это не так. Мне нужно сохранить QTreeWidgetItem в другой переменной и пометить его как выбранный после того, как дерево полностью заполнено. Почему это происходит?
Это не работает:
def refreshTree(self):
treeObj.clear()
for item in items:
temp = QTreeWidgetItem(0)
for key, val in item.subitems().items():
childTemp = QTreeWidgetItem(0)
...setup text, font, etc...
if(condition1):
childTemp.setSelected(True)
temp.addChild(childTemp)
if(!condition1 and condition2):
temp.setSelected(True)
treeObj.addToplevelItem(temp)
Это делает:
def refreshTree(self):
treeObj.clear()
for item in items:
temp = QTreeWidgetItem(0)
for key, val in item.subitems().items():
childTemp = QTreeWidgetItem(0)
...setup text, font, etc...
if(condition1):
selTemp = childTemp
temp.addChild(childTemp)
if(!condition1 and condition2):
temp.setSelected(True)
elif(selTemp):
selTemp.setSelected(True)
treeObj.addToplevelItem(temp)